6.2 部署爬虫与计划运行
我们将直接从开发机进行部署。要想实现这一目标,只需将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区域看到新的一行,之后Requests和Items的数值(5)开始不断增长。
与开发时的运行速度相比,此时的运行速度可能不会降低。Scrapinghub使用了算法预估每秒的请求数,能够让你在执行时不会被屏蔽。
让它运行一会儿,然后选择该任务的复选框(6),并单击Stop按钮(7)。
几秒钟之后,我们的任务将会停止,并进入Completed Jobs区域。要想查看已经抓取的条目,可以单击items链接中的数字(8)。
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论