【问题标题】:How can I run Scrapyd on a server如何在服务器上运行 Scrapyd
【发布时间】:2018-04-11 18:46:20
【问题描述】:

最近,Scrapinghub 的免费包中不再提供定期作业,这是我用来运行 Scrapy 爬虫的工具。

因此,我决定改用Scrapyd。所以我继续安装了一个运行 Ubuntu 16.04 的虚拟服务器。 (这是我第一次设置和运行服务器,请多多包涵)

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

$ pip install scrapyd

(那是在我发现 Ubuntu 推荐的使用 apt-get 的方式实际上不再受支持之后,请参阅 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'

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

相反,我只收到错误消息“无法访问此站点 82.165.102.18 拒绝连接。”

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

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

在这一点上,我迷路了。如果您有任何想法,请告诉我!

非常感谢!

【问题讨论】:

  • 这个问题可能属于元线程,但在 cmets 中是否允许征集?

标签: ubuntu scrapy scrapyd scrapinghub


【解决方案1】:

如果您可以在本地访问您的 Scrapyd 实例,但不能通过网络访问,我怀疑 Scrapyd 仅在 localhost 上侦听。请确保在您的scrapyd.conf 中有此行​​:

bind_address = 0.0.0.0

它指示 Scrapyd 监听所有接口。 bind_address 默认为127.0.0.1,所以默认情况下它只监听本地主机。

【讨论】:

  • 感谢一百万,托马斯,就是这样!
  • 顺便说一句:我必须创建文件 scrapyd.conf,因为它以前不存在。我创建了以this example file 为模板的文件,并按照您的建议更改了 bind_address。
  • 另外,我上次没有提到,但考虑在 Docker 中运行 Scrapyd。它极大地简化了事情,尤其是在大规模部署时。
  • 再次感谢您的帮助,托马斯。你觉得你可以看看我的后续问题over here吗?
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2018-04-23
  • 2018-07-21
  • 2015-09-20
  • 2016-11-12
相关资源
最近更新 更多