Seb*_*ian 2 ubuntu scrapy scrapyd scrapinghub
截至最近,Scrapinghub 的免费包中不再包含定期作业,这是我用来运行我的 Scrapy 爬虫的工具。
\n\n因此,我决定改用Scrapyd。所以我继续建立了一个运行 Ubuntu 16.04 的虚拟服务器。(这是我第一次设置和运行服务器,所以请耐心等待)
\n\n按照scrapyd.readthedocs.io上的说明,我使用 pip 安装了 Scrapyd:
\n\n$ pip install scrapyd\n
Run Code Online (Sandbox Code Playgroud)\n\n(那是在我发现 Ubuntu 的推荐方式(使用 apt-get)实际上不再受支持之后,请参阅Github)。
\n\n然后我使用 SSH 登录到我的服务器,并通过简单地运行来运行 Scrapyd
\n\n$ scrapyd\n
Run Code Online (Sandbox Code Playgroud)\n\n据我所知,一切看起来都很好:
\n\n2017-10-30 17:31:19+0000 [-] Log opened.\n2017-10-30 17:31:19+0000 [-] twistd 16.0.0 (/usr/bin/python 2.7.12) starting up.\n2017-10-30 17:31:19+0000 [-] reactor class: twisted.internet.epollreactor.EPollReactor.\n2017-10-30 17:31:19+0000 [-] Site starting on 6800\n2017-10-30 17:31:19+0000 [-] Starting factory <twisted.web.server.Site instance at 0x7f644752bfc8>\n2017-10-30 17:31:19+0000 [Launcher] Scrapyd 1.2.0 started: max_proc=4, runner=u\'scrapyd.runner\'\n
Run Code Online (Sandbox Code Playgroud)\n\n当我访问我的 IP http://82.165.102.18:6800时,我希望看到一个 Web 界面(此处描述) 。
\n\n相反,我只是收到错误消息“此站点可以\xe2\x80\x99t 被访问 82.165.102.18 拒绝连接。”
\n\n当我尝试在本地运行 Scrapyd 时,一切正常,并且我在http://localhost:6800/处获得了 Web 界面。
\n\n我尝试禁用防火墙(UFW),但这没有帮助。
\n\n此时,我迷失了。如果您有任何想法,请告诉我!
\n\n多谢!
\n如果您可以在本地访问 Scrapyd 实例但不能通过网络访问,我怀疑 Scrapyd 仅在本地主机上侦听。请务必在您的中包含此行scrapyd.conf
:
bind_address = 0.0.0.0
Run Code Online (Sandbox Code Playgroud)
它指示 Scrapyd 监听所有接口。bind_address
默认为127.0.0.1
,因此默认情况下它仅侦听本地主机。