折腾:
【记录】重新用PySpider下载xxx的数据
期间,本来之前PySpider项目,都是直接不用任何参数:
pyspider
即可运行,默认5000端口的。
但是现在有2个项目要运行,所以会有端口冲突的问题。
所以要去改端口。
想要找到最简单的方式去更改。
印象中,通过命令行可以设置端口的,这样可以避免用额外的config.json文件了。
不想要用config.json,只是在终端命令行中设置端口:
pyspider webui --port=1234
-》但是这样会不会只启动webui?
而不启动其他模块,比如schedule,phantomjs等等?
如果不行,再去试试:
“{“webui”: {“port”:5001}}”
pyspider 端口
先去试试再说
果然是的:
➜ 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了。
试试:
{ "webui": { "port": 6000 } }
没有指定其他比如
taskdb
等等,看看是否可以继续采用默认的值
➜ 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:
➜ 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整数,所以改为:
➜ 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,就可以了:
➜ 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端口被别的程序占用了?
➜ ~ 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
{ "webui": { "port": 7000 } }
再去运行:
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
表示,同时运行了其他模块:
- result_worker
- tornado_fetcher
- processor
- scheduler
即可正常用浏览器去对应端口,打开webUI:
注:
如果只是:
pyspider webui --port 7000
则只会运行webUI模块,而没有运行其他模块,则是无法正常调试的。
转载请注明:在路上 » 【已解决】PySpider中如何更改默认5000端口