最新消息:20210816 当前crifan.com域名已被污染,为防止失联,请关注(页面右下角的)公众号

【已解决】PySpider中如何更改默认5000端口

pyspider crifan 363浏览 0评论
折腾:
【记录】重新用PySpider下载xxx的数据
期间,本来之前PySpider项目,都是直接不用任何参数:
pyspider
即可运行,默认5000端口的。
但是现在有2个项目要运行,所以会有端口冲突的问题。
所以要去改端口。
想要找到最简单的方式去更改。
印象中,通过命令行可以设置端口的,这样可以避免用额外的config.json文件了。
不想要用config.json,只是在终端命令行中设置端口:
how to change webui default port? · Issue #367 · binux/pyspider
pyspider webui --port=1234
-》但是这样会不会只启动webui?
而不启动其他模块,比如schedule,phantomjs等等?
如果不行,再去试试:
http://docs.pyspider.org/en/latest/Command-Line/
“{“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
一看输出,就知道是对的:
同时运行了其他模块了。
这样再去浏览器中打开:
http://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 更换端口 无法打开
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
结果:
问题依旧。
参考:
pyspider简单安装配置问题解决方法 – Gavin
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:
http://0.0.0.0:7000/
注:
如果只是:
pyspider webui --port 7000
则只会运行webUI模块,而没有运行其他模块,则是无法正常调试的。

转载请注明:在路上 » 【已解决】PySpider中如何更改默认5000端口

发表我的评论
取消评论

表情

Hi,您需要填写昵称和邮箱!

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址
86 queries in 0.105 seconds, using 20.62MB memory