折腾:
【记录】重新用PySpider下载xxx的数据
期间,本来之前PySpider项目,都是直接不用任何参数:
pyspider
即可运行,默认5000端口的。
但是现在有2个项目要运行,所以会有端口冲突的问题。
所以要去改端口。
想要找到最简单的方式去更改。
印象中,通过命令行可以设置端口的,这样可以避免用额外的config.json文件了。
不想要用config.json,只是在终端命令行中设置端口:
1 | pyspider webui --port=1234 |
-》但是这样会不会只启动webui?
而不启动其他模块,比如schedule,phantomjs等等?
如果不行,再去试试:
“{“webui”: {“port”:5001}}”
pyspider 端口
先去试试再说
果然是的:
1 2 | ➜ crawler_xxx_app git:(master) ✗ pyspider webui --port 6000 [I 181012 11:22:54 app:76] webui running on 0.0.0.0:6000 |
且:
浏览器中都打不开:
0.0.0.0:6000

-》说明的确只允许了webui,而没有(像默认的all模式一样)运行其他模块
-》导致没法调试。
-》所以还是只能去换用配置文件config.json了。
试试:
1 2 3 4 5 | { "webui" : { "port" : 6000 } } |
没有指定其他比如
taskdb
等等,看看是否可以继续采用默认的值
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 | ➜ crawler_xxx_app git:(master) ✗ cat config.json { "webui" : { "port" : 6000 } } ➜ crawler_xxx_app git:(master) ✗ pyspider -c config.json phantomjs fetcher running on port 25555 [I 181012 11:26:52 result_worker:49] result_worker starting... [I 181012 11:26:53 processor:211] processor starting... [I 181012 11:26:53 tornado_fetcher:638] fetcher starting... [I 181012 11:26:53 scheduler:647] scheduler starting... [I 181012 11:26:53 scheduler:782] scheduler.xmlrpc listening on 127.0.0.1:23333 [I 181012 11:26:53 scheduler:586] in 5m: new :0,success:0,retry:0,failed:0 [I 181012 11:26:53 app:76] webui running on 0.0.0.0:6000 |
一看输出,就知道是对的:
同时运行了其他模块了。
这样再去浏览器中打开:
结果以为正常,竟然也打不开。
然后换成5000:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 | ➜ crawler_xxx_app git:(master) ✗ cat config.json { "webui" : { "port" : 5000 } } ➜ crawler_xxx_app git:(master) ✗ pyspider -c config.json phantomjs fetcher running on port 25555 [I 181012 11:29:30 result_worker:49] result_worker starting... [I 181012 11:29:30 processor:211] processor starting... [I 181012 11:29:30 tornado_fetcher:638] fetcher starting... [I 181012 11:29:30 scheduler:647] scheduler starting... [I 181012 11:29:30 scheduler:782] scheduler.xmlrpc listening on 127.0.0.1:23333 [I 181012 11:29:30 scheduler:586] in 5m: new :0,success:0,retry:0,failed:0 [I 181012 11:29:30 app:76] webui running on 0.0.0.0:5000 |
就可以打开webui

-》看来是不允许网络访问?
猜测是:之前正常的,第一次pyspidr时,会弹框问你是否允许Python3访问网络的。
然后点击了是
此处用了config文件,好像没有弹框提醒,所以无法访问了?
PySpider 更换端口 无法打开
” “webui”:{
“host”:”192.168.218.10″,
“port”:”4999″,”
发现port是要字符串,而不是int整数,所以改为:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 | ➜ crawler_xxx_app git:(master) ✗ cat config.json { "webui" : { "port" : "6000" } } ➜ crawler_xxx_app git:(master) ✗ pyspider -c config.json phantomjs fetcher running on port 25555 [I 181012 11:34:35 result_worker:49] result_worker starting... [I 181012 11:34:35 processor:211] processor starting... [I 181012 11:34:35 tornado_fetcher:638] fetcher starting... [I 181012 11:34:35 scheduler:647] scheduler starting... [I 181012 11:34:35 scheduler:782] scheduler.xmlrpc listening on 127.0.0.1:23333 [I 181012 11:34:35 scheduler:586] in 5m: new :0,success:0,retry:0,failed:0 [I 181012 11:34:36 app:76] webui running on 0.0.0.0:6000 |
结果:
问题依旧。
参考:
port是数字
” “webui”: {
“host”: “127.0.0.1”,
“port”: 6969,”
难道必须把所有的参数都配置好才能运行?
然后发现,换个别的端口,比如7000,就可以了:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 | ➜ crawler_xxx_app git:(master) ✗ cat config.json { "webui" : { "port" : 7000 } } ➜ crawler_xxx_app git:(master) ✗ pyspider -c config.json phantomjs fetcher running on port 25555 [I 181012 11:45:12 result_worker:49] result_worker starting... [I 181012 11:45:12 tornado_fetcher:638] fetcher starting... [I 181012 11:45:12 processor:211] processor starting... [I 181012 11:45:12 scheduler:647] scheduler starting... [I 181012 11:45:13 scheduler:782] scheduler.xmlrpc listening on 127.0.0.1:23333 [I 181012 11:45:13 scheduler:586] in 5m: new :0,success:0,retry:0,failed:0 [I 181012 11:45:13 app:76] webui running on 0.0.0.0:7000 |

-》推测:6000端口被别的程序占用了?
1 2 3 4 5 6 7 8 9 10 11 12 13 14 | ➜ ~ lsof - i: 6000 ➜ ~ netstat - lanp | grep 6000 netstat: option requires an argument - - p Usage: netstat [ - AaLlnW] [ - f address_family | - p protocol] netstat [ - gilns] [ - f address_family] netstat - i | - I interface [ - w wait] [ - abdgRtS] netstat - s [ - s] [ - f address_family | - p protocol] [ - w wait] netstat - i | - I interface - s [ - f address_family | - p protocol] netstat - m [ - m] netstat - r [ - Aaln] [ - f address_family] netstat - rs [ - s] ➜ ~ ps - ef | grep 6000 501 9739 9398 0 11 : 47 上午 ttys004 0 : 00.00 grep - - color = auto - - exclude - dir = .bzr - - exclude - dir = CVS - - exclude - dir = .git - - exclude - dir = .hg - - exclude - dir = .svn 6000 |
并没有找到此处Mac中哪个程序占用了6000端口
算了。暂时不去深究了。
【总结】
此处,正常的情况下,用:
config.json
1 2 3 4 5 | { "webui" : { "port" : 7000 } } |
再去运行:
1 | pyspider -c config.json |
注意:
其输出是类似于:
1 2 3 4 5 6 7 8 | phantomjs fetcher running on port 25555 [I 181012 11:45:12 result_worker:49] result_worker starting... [I 181012 11:45:12 tornado_fetcher:638] fetcher starting... [I 181012 11:45:12 processor:211] processor starting... [I 181012 11:45:12 scheduler:647] scheduler starting... [I 181012 11:45:13 scheduler:782] scheduler.xmlrpc listening on 127.0.0.1:23333 [I 181012 11:45:13 scheduler:586] in 5m: new :0,success:0,retry:0,failed:0 [I 181012 11:45:13 app:76] webui running on 0.0.0.0:7000 |
表示,同时运行了其他模块:
- result_worker
- tornado_fetcher
- processor
- scheduler
即可正常用浏览器去对应端口,打开webUI:
注:
如果只是:
1 | pyspider webui --port 7000 |
则只会运行webUI模块,而没有运行其他模块,则是无法正常调试的。
转载请注明:在路上 » 【已解决】PySpider中如何更改默认5000端口