如何在服务器上运行Scrapyd

时间:2017-10-30 17:37:24

标签: ubuntu scrapy scrapyd scrapinghub

截至目前,Scrapinghub在他们的免费软件包中不再有定期工作,这是我以前用来运行我的Scrapy抓取工具的。

因此,我决定使用Scrapyd代替。所以我继续使用运行Ubuntu 16.04的虚拟服务器。 (这是我第一次设置和运行服务器,所以请耐心等待我)

按照scrapyd.readthedocs.io上的说明,我使用pip安装了Scrap:

$ pip install scrapyd

(那是在我发现使用apt-get的Ubuntu的推荐方式实际上不再受支持之后,请参阅Github)。

然后我使用SSH登录我的服务器,只需运行

就可以运行Scrapyd
$ scrapyd

就我所知,一切看起来都很好:

2017-10-30 17:31:19+0000 [-] Log opened.
2017-10-30 17:31:19+0000 [-] twistd 16.0.0 (/usr/bin/python 2.7.12) starting up.
2017-10-30 17:31:19+0000 [-] reactor class: twisted.internet.epollreactor.EPollReactor.
2017-10-30 17:31:19+0000 [-] Site starting on 6800
2017-10-30 17:31:19+0000 [-] Starting factory <twisted.web.server.Site instance at 0x7f644752bfc8>
2017-10-30 17:31:19+0000 [Launcher] Scrapyd 1.2.0 started: max_proc=4, runner=u'scrapyd.runner'

当我在here访问我的IP时,我希望看到一个网络界面(描述为http://82.165.102.18:6800)。

相反,我只是收到错误消息&#34;此网站无法联系82.165.102.18拒绝连接。&#34;

当我尝试在本地运行Scrapyd时,一切正常,我在http://localhost:6800/获得了Web界面。

我尝试过禁用防火墙(UFW),但这并没有帮助。

此时,我迷路了。如果您有任何想法,请告诉我们!

非常感谢!

1 个答案:

答案 0 :(得分:3)

如果您可以在本地访问Scrapyd实例但不能通过网络访问,我怀疑Scrapyd只在localhost上侦听。请务必在scrapyd.conf

中加上这一行
bind_address = 0.0.0.0

它指示Scrapyd监听所有接口。 bind_address默认为127.0.0.1,因此默认情况下它只侦听localhost。