Python3网络爬虫实战-13、部署相关库ScrapydClient、ScrapydAPI

ScrapydClient的安装

在将 Scrapy 代码部署到远程 Scrapyd 的时候,其第一步就是要将代码打包为 Egg 文件,其次需要将 Egg 文件上传到远程主机,这个过程如果我们用程序来实现是完全可以的,但是我们并不需要做这些工作,因为 ScrapydClient 已经为我们实现了这些功能。
下面我们就来过一下 ScrapydClient 的安装过程。

1. 相关链接

2. Pip安装

推荐使用 Pip 安装,命令如下:

pip3 install scrapyd-client

3. 验证安装

安装成功后会有一个可用命令,叫做 scrapyd-deploy,即部署命令。
我们可以输入如下测试命令测试 ScrapydClient 是否安装成功:

scrapyd-deploy -h

如果出现如图 1-87 类似输出则证明 ScrapydClient 已经成功安装:

图 1-87 运行结果
在后文我们会详细了解它的用法。

ScrapydAPI的安装

安装好了 Scrapyd 之后,我们可以直接请求它提供的 API 即可获取当前主机的 Scrapy 任务运行状况。

如某台主机的 IP 为 192.168.1.1,则可以直接运行如下命令获取当前主机的所有 Scrapy 项目:

curl http://localhost:6800/listprojects.json
Python资源分享qun 784758214 ,内有安装包,PDF,学习视频,这里是Python学习者的聚集地,零基础,进阶,都欢迎

运行结果:

{"status": "ok", "projects": ["myproject", "otherproject"]}

返回结果是 Json 字符串,通过解析这个字符串我们便可以得到当前主机所有项目。

但是用这种方式来获取任务状态还是有点繁琐,所以 ScrapydAPI 就为它做了一层封装,下面我们来看下它的安装方式。

1. 相关链接

2. Pip安装

推荐使用 Pip 安装,命令如下:

pip install python-scrapyd-api

3. 验证安装

安装完成之后便可以使用 Python 来获取主机状态了,所以如上的操作便可以用 Python 代码实现:

from scrapyd_api import ScrapydAPI
scrapyd = ScrapydAPI(‘http://localhost:6800‘)
print(scrapyd.list_projects())

运行结果:

["myproject", "otherproject"]
Python资源分享qun 784758214 ,内有安装包,PDF,学习视频,这里是Python学习者的聚集地,零基础,进阶,都欢迎

这样我们便可以用 Python 直接来获取各个主机上 Scrapy 任务的运行状态了。

原文地址:https://blog.51cto.com/14445003/2425408

时间: 2024-10-29 11:09:37

Python3网络爬虫实战-13、部署相关库ScrapydClient、ScrapydAPI的相关文章

Python3网络爬虫实战-5、Web库的安装:Flask、Tornado

Web 想必我们都不陌生,我们现在日常访问的网站都是 Web 服务程序搭建而成的,Python 同样不例外也有一些这样的 Web 服务程序,比如 Flask.Django 等,我们可以拿它来开发网站,开发接口等等. 在本书中,我们主要要用到这些 Web 服务程序来搭建一些 API 接口,供我们的爬虫使用.例如,维护一个代理池,代理保存在 Redis 数据库中,我们要将代理池作为一个公共的组件使用,那么如何构建一个方便的平台来供我们取用这些代理呢?最合适不过的就是通过 Web 服务提供一个 API

《Python3网络爬虫实战案例(崔庆才著)》 中文版PDF下载,附源代码+视频教程

<Python3网络爬虫实战案例(崔庆才著)>中文版PDF下载,附源代码+视频教程,带目录资料下载:https://pan.baidu.com/s/1OzxyHQMLOzWFMzjdQ8kEqQ 原文地址:http://blog.51cto.com/7369682/2330247

Python3网络爬虫实战-10、爬虫框架的安装:PySpider、Scrapy

我们直接用 Requests.Selenium 等库写爬虫,如果爬取量不是太大,速度要求不高,是完全可以满足需求的.但是写多了会发现其内部许多代码和组件是可以复用的,如果我们把这些组件抽离出来,将各个功能模块化,就慢慢会形成一个框架雏形,久而久之,爬虫框架就诞生了. 利用框架我们可以不用再去关心某些功能的具体实现,只需要去关心爬取逻辑即可.有了它们,可以大大简化代码量,而且架构也会变得清晰,爬取效率也会高许多.所以如果对爬虫有一定基础,上手框架是一种好的选择. 本书主要介绍的爬虫框架有PySpi

Python3网络爬虫实战-23、使用Urllib:分析Robots协议

利用 Urllib 的 robotparser 模块我们可以实现网站 Robots 协议的分析,本节我们来简单了解一下它的用法. 1. Robots协议 Robots 协议也被称作爬虫协议.机器人协议,它的全名叫做网络爬虫排除标准(Robots Exclusion Protocol),用来告诉爬虫和搜索引擎哪些页面可以抓取,哪些不可以抓取.它通常是一个叫做 robots.txt 的文本文件,放在网站的根目录下. 当搜索爬虫访问一个站点时,它首先会检查下这个站点根目录下是否存在 robots.tx

Python3网络爬虫实战-14、部署相关库的安装:Scrapyrt、Gerapy

Scrapyrt的安装 Scrapyrt 为 Scrapy 提供了一个调度的 HTTP 接口,有了它我们不需要再执行 Scrapy 命令而是通过请求一个 HTTP 接口即可调度 Scrapy 任务,Scrapyrt 比 Scrapyd 轻量级,如果不需要分布式多任务的话可以简单使用 Scrapyrt 实现远程 Scrapy 任务的调度. 1. 相关链接 GitHub:https://github.com/scrapinghu... 官方文档:http://scrapyrt.readthedocs

Python3网络爬虫实战-12、部署相关库的安装:Docker、Scrapyd

如果想要大规模抓取数据,那么一定会用到分布式爬虫,对于分布式爬虫来说,我们一定需要多台主机,每台主机多个爬虫任务,但是源代码其实只有一份.那么我们需要做的就是将一份代码同时部署到多台主机上来协同运行,那么怎么去部署就又是一个值得思考的问题. 对于 Scrapy 来说,它有一个扩展组件叫做 Scrapyd,我们只需要安装 Scrapyd 即可远程管理 Scrapy 任务,包括部署源码.启动任务.监听任务等操作.另外还有 ScrapydClient 和 ScrapydAPI 来帮助我们更方便地完成部

Python3网络爬虫实战-6、APP爬取相关库的安装:Charles的安装

除了 Web 网页,爬虫也可以对 APP 的数据进行抓取,APP 中的页面要加载出来,首先需要获取数据,那么这些数据一般是通过请求服务器的接口来获取的,由于 APP 端没有像浏览器一样的开发者工具直接比较直观地看到后台的请求,所以对 APP 来说,它的数据抓取主要用到一些抓包技术. 本书介绍的抓包工具有 Charles.MitmProxy.MitmDump,APP 一些简单的接口我们通过 Charles 或 MitmProxy 分析找出规律就可以直接用程序模拟来抓取了,但是如果遇到更复杂的接口我

Python3网络爬虫实战-9、APP爬取相关库的安装:Appium的安装

Appium 是移动端的自动化测试工具,类似于前面所说的 Selenium,利用它我们可以驱动 Android.iOS 等设备完成自动化测试,比如模拟点击.滑动.输入等操作,其官方网站为:http://appium.io/,本节来了解一下 Appium 的安装方式. 1. 相关链接 GitHub:https://github.com/appium/appium 官方网站:http://appium.io 官方文档:http://appium.io/introduction... 下载链接:htt

Python3网络爬虫实战-7、APP爬取相关库的安装:MitmProxy的安装

MitmProxy 是一个支持 HTTP 和 HTTPS 的抓包程序,类似 Fiddler.Charles 的功能,只不过它是一个控制台的形式操作.同时 MitmProxy 还有两个关联组件,一个是 MitmDump,它是 MitmProxy 的命令行接口,利用它我们可以对接 Python 脚本,用 Python 实现监听后的处理.另一个是 MitmWeb,它是一个 Web 程序,通过它我们可以清楚地观察到 MitmProxy 捕获的请求.本节我们来了解一下 MitmProxy.MitmDump