【动图演示】笑眯眯地教你如何将 Scrapy 项目及爬虫打包部署到服务器

举报
SUNSKY 发表于 2019/10/13 16:33:17 2019/10/13
【摘要】 当爬虫代码编写完毕后,你可以选择直接运行启动文件来启动爬虫,也可以将爬虫部署到 Scrapyd 后,通过 Scrapyd 的 API 来启动爬虫。

1  

通过 Scrapyd-client 打包并部署爬虫

当爬虫代码编写完毕后,你可以选择直接运行启动文件来启动爬虫,也可以将爬虫部署到 Scrapyd 后,通过 Scrapyd 的 API 来启动爬虫。

那么如何将爬虫项目打包并部署到 Scrapyd 呢?

笔者 将通过两个具体的部署例子(部署到本地以及部署到云服务器)以熟悉 Scrapy 爬虫项目打包、Scrapyd-client 的安装、使用以及爬虫项目部署过程。

爬虫项目打包

Scrapyd 打包部署的整个流程为:

打包前期

当你使用 Scrapy 框架编写完爬虫代码之后,你需要将项目进行打包,才能够将其部署到 Scrapyd 上。官方文档对项目的打包有介绍:

1.0.png1.1.png

Scrapy 项目需要使用 Scrapyd-client 工具进行打包。

Scrapyd-client

它是 Scrapy 项目打包专用的客户端工具,同样是由 Scrapy 开发团队开发。使用 Scrapyd-client 将项目打包生成 .egg 文件。

Scrapyd-client 的安装

与 Scrapyd 一样,它也可以通过 pip 进行安装:

1.2.png

16660bc9d4e89f1a?w=999&h=728&f=gif&s=895557  

打包前的项目配置

1.3.png

配置文件分为 Settings 级和 Deploy 级。Settings 中指定了项目所用的配置文件,而 Deploy 中指定项目打包的设置。

URL - 指定部署的目标地址

Project - 指定打包的项目

Deploy - 指定项目别名

1.4.png

16660c2dbc020c0f?w=1242&h=773&f=gif&s=143494  

打包部署

1.5.png

16660c7457ae67b3?w=1685&h=741&f=gif&s=213936  

将项目打包并部署到指定的目标服务上,Scrapyd 服务会将请求结果以 json 格式返回:

1.6.png

返回信息中包含了此次打包的版本号、目标服务地址、nodeName、项目状态、项目名称以及其中所包含的爬虫数量。并且在 Web 界面上也可以看到项目 arts 的名称,如下图所示:

16660c8c0229d20e?w=1308&h=501&f=gif&s=109488  

思考题

scrapy.cfg 文件中 Deploy 级设置里,Deploy 的名称是必须设置的吗?如果不设置会怎么样?可以有多个 Deploy 级配置吗?

我们可以通过动手实验,来验证这些问题。

若 Deploy 不设置名称

16660cedf6f041cd?w=1245&h=765&f=gif&s=119551  

可以看到,Deploy 级配置不设置名称的话,在命令行中也无需使用名称,同样可以完成项目的打包。

若多个 Deploy 配置

1.7.png

16660dcbf865f1cd?w=1242&h=764&f=gif&s=206864  

可以看到,多个 Deploy 级别的配置是允许的,并且我们可以使用 Deploy 的名称来区分它们。

小结

通过 Scrapy 项目的部署案例,我们学会了 Scrapyd-client 的安装、使用以及打包前.cfg配置文件的相关配置,并且成功的将一个 Scrapy 项目打包部署到目标服务器上。

还没看够?

动图教学是不是感觉比较容易理解,也比较新奇?

还有更多的爬虫部署知识以及 Scrapyd 改造知识在等你,点击这里查看掘金小册,我们一起来做一个带有访问权限控制的爬虫部署控制台吧!

166bef784450e088?w=724&h=254&f=png&s=47314  

就像这个一样:

166655ce18edbde0?imageslim  

本文转载自异步社区。

原文链接:https://www.epubit.com/articleDetails?id=N2931ba0f-53cd-4213-9ec4-df107d702f02


【版权声明】本文为华为云社区用户转载文章,如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@huaweicloud.com
  • 点赞
  • 收藏
  • 关注作者

评论(0

0/1000
抱歉,系统识别当前为高风险访问,暂不支持该操作

全部回复

上滑加载中

设置昵称

在此一键设置昵称,即可参与社区互动!

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。