【问题标题】:Running Scrapyd as a daemon on centos 6.10 python 3.6在 centos 6.10 python 3.6 上运行 Scrapyd 作为守护进程
【发布时间】:2019-03-29 07:41:12
【问题描述】:

我正在尝试在我的专用 centos 6.10 服务器上运行我的爬虫。我安装了python 3.6.6,创建了venv,并从pip 安装了运行scrapyd。命令scrapyd 显示:

2018-10-24T12:23:56-0700 [-] Loading /usr/local/lib/python3.6/site-packages/scrapyd/txapp.py...
2018-10-24T12:23:57-0700 [-] Scrapyd web console available at http://127.0.0.1:6800/
2018-10-24T12:23:57-0700 [-] Loaded.
2018-10-24T12:23:57-0700 [twisted.scripts._twistd_unix.UnixAppLogger#info] twistd 18.7.0 (/usr/local/bin/python3.6 3.6.6) starting up.
2018-10-24T12:23:57-0700 [twisted.scripts._twistd_unix.UnixAppLogger#info] reactor class: twisted.internet.epollreactor.EPollReactor.
2018-10-24T12:23:57-0700 [-] Site starting on 6800
2018-10-24T12:23:57-0700 [twisted.web.server.Site#info] Starting factory <twisted.web.server.Site object at 0x7f4661cdf940>
2018-10-24T12:23:57-0700 [Launcher] Scrapyd 1.2.0 started: max_proc=16, runner='scrapyd.runner'

非常酷。现在我有几个问题。

1- 如果它在我的专用服务器上运行,这是否意味着 scrapyd Web 控制台位于 [serverIP]:6800?或者,至少,它应该在那里?因为在命令运行时,它不会出现。找不到该网站。所以,我有点撞到了一堵砖墙。

2- 另一件事是我不想让浏览器或 SSH 终端保持打开状态来运行 scrapyd。我读过的所有文章都建议没有适合 scrapyd 的 RPM 包,直到有人做出来之前我很不走运,因为我个人不是 linux 专家,我很惊讶我能做到这一点。

所以我猜这是将scrapyd 作为服务器上的守护进程运行的问题,因为它需要特殊文件。我可以直接从 git 安装scrapyd 吗?然而,似乎即使是 git 也没有我似乎需要这个项目才能工作的正确文件。

如果有人可以在正确的轨道上帮助我,请指导我或向我提供一篇文章,其中有人在 6.10 上完成了整个过程,那将是很棒的。

【问题讨论】:

    标签: python scrapy centos twisted scrapyd


    【解决方案1】:

    1 - 使用 scrapyd 配置文件在其中添加 bind_address=0.0.0.0

    # cat ~/.scrapyd.conf [scrapyd] bind_address=0.0.0.0

    启动scrapyd,你应该会看到类似

    2018-11-11T13:58:08-0800 [-] Scrapyd web console available at http://0.0.0.0:6800/

    现在您应该可以从 [serverIP]:6800 访问 Web 界面

    2 - 你可以随时使用 tmux,阅读https://hackernoon.com/a-gentle-introduction-to-tmux-8d784c404340

    【讨论】:

    • 好酷 :) 我得试一试。您和 PROW 都创建了有价值的答案,我将谁标记为答案?
    • 没关系,只要我帮忙,我就开心。 :)
    【解决方案2】:

    您可以使用@Rene_Xu 回答并检查防火墙以查看其是否断开了外部连接。为了让 scrapyd 保持活力,您可以编写一个简单的脚本并将其变成一个守护进程,或者只使用 crontab,如 here

    所述

    【讨论】:

    • 感谢您添加到他的答案中,这很有帮助:)
    • 很高兴我能帮上忙 :) !!
    【解决方案3】:

    另外,请检查您的专用环境设置,例如,如果您托管在 AWS 中,则需要设置您的安全组、网络 ACL 等,以允许此特定端口上的传入请求。

    【讨论】:

      猜你喜欢
      • 2023-03-02
      • 1970-01-01
      • 1970-01-01
      • 2018-07-05
      • 2013-03-09
      • 2013-09-14
      • 2012-12-03
      • 2011-08-25
      • 1970-01-01
      相关资源
      最近更新 更多