返回介绍

6.2 部署爬虫与计划运行

发布于 2024-01-30 22:48:37 字数 2607 浏览 0 评论 0 收藏 0

我们将直接从开发机进行部署。要想实现这一目标,只需将Scrapy Deploy页面中的代码(3)拷贝到项目中的scrapy.cfg文件中,替换掉默认的[deploy]区域即可。你会注意到我们并不需要设置密码。我们将使用第4章中的房产项目作为示例,使用该爬虫的原因是目标数据需要能够在网络上访问到,和第4章使用的情况一样。在使用它之前,需要恢复原始的settings.py文件,移除和Appery.io管道相关的引用。

本章代码在ch06目录中。其中,该示例位于ch06/properties目录中。

$ pwd
/root/book/ch06/properties
$ ls
properties scrapy.cfg
$ cat scrapy.cfg
...

[settings]
default = properties.settings

# Project: properties
[deploy]
url = http://dash.scrapinghub.com/api/scrapyd/
username = 180128bc7a0.....50e8290dbf3b0
password =
project = 28814

为了部署爬虫,还需要使用Scrapinghub提供的shub工具。可以通过pip install shub安装该工具,不过我们已经在开发机中已经安装好该工具了。可以使用下述方法登录Scrapinghub。

$ shub login
Insert your Scrapinghub API key : 180128bc7a0.....50e8290dbf3b0
Success.

我们已经将API key复制到scrapy.cfg文件中了,不过也可以通过单击Scrapinghub网站右上角的用户名,再单击API Key找到该值。无论如何,现在我们已经准备好使用shub deploy部署爬虫了。

$ shub deploy
Packing version 1449092838
Deploying to project "28814" in {"status": "ok", "project": 28814, 
"version": "1449092838", "spiders": 1}
Run your spiders at: https://dash.scrapinghub.com/p/28814/

Scrapy将本项目中的所有爬虫打包,并上传到Scrapinghub当中。可以注意到,此时产生了两个新目录和一个新文件。这些只是辅助文件,如果不需要的话,可以安全地删除它们,不过通常情况下没必要在意它们。

$ ls
build project.egg-info properties scrapy.cfgsetup.py
$ rm -rf build project.egg-info setup.py

现在,当单击Scrapinghub的Spiders区域(1)时,可以找到刚刚部署的tomobile爬虫,如图6.4所示。

图6.4 选择爬虫

当单击它时(2),会进入到爬虫面板,如图6.5所示。该面板中包含大量信息,不过目前我们需要做的就是单击右上角的Schedule按钮(3),然后在弹出的对话框中再次单击Schedule按钮(4)。

图6.5 计划爬虫运行

几秒钟之后,可以在页面中的Running Jobs区域看到新的一行,之后RequestsItems的数值(5)开始不断增长。

与开发时的运行速度相比,此时的运行速度可能不会降低。Scrapinghub使用了算法预估每秒的请求数,能够让你在执行时不会被屏蔽。

让它运行一会儿,然后选择该任务的复选框(6),并单击Stop按钮(7)。

几秒钟之后,我们的任务将会停止,并进入Completed Jobs区域。要想查看已经抓取的条目,可以单击items链接中的数字(8)。

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。
列表为空,暂无数据
    我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
    原文