使用scrapyd api的python包装器

python-scrapyd-api的Python项目详细描述


python scrapyd api

The PyPI versionBuild status on Travis-CICoverage status on CoverallsDocumentation status on ReadTheDocs

用于处理ScrapydAPI的python包装器。

当前发布的版本:2.1.2(请参见history)。

允许python应用程序与 Scrapy后台程序:Scrapyd

安装

最简单的安装方法是通过pip

pip install python-scrapyd-api

快速使用

请参阅full documentation了解更多详细用法,但要开始使用,请执行以下操作:

>>>fromscrapyd_apiimportScrapydAPI>>>scrapyd=ScrapydAPI('http://localhost:6800')

添加项目egg作为新版本:

>>>egg=open('some_egg.egg','rb')>>>scrapyd.add_version('project_name','version_name',egg)# Returns the number of spiders in the project.3>>>egg.close()

取消计划的作业

>>>scrapyd.cancel('project_name','14a6599ef67111e38a0e080027880ca6')# Returns the "previous state" of the job before it was cancelled: 'running' or 'pending'.'running'

删除项目和所有同级版本:

>>>scrapyd.delete_project('project_name')# Returns True if the request was met with an OK response.True

删除项目的版本

>>>scrapyd.delete_version('project_name','version_name')# Returns True if the request was met with an OK response.True

请求作业的状态

>>>scrapyd.job_status('project_name','14a6599ef67111e38a0e080027880ca6')# Returns 'running', 'pending', 'finished' or '' for unknown state.'running'

列出所有已注册的作业

>>>scrapyd.list_jobs('project_name')# Returns a dict of running, finished and pending job lists.{'pending':[{u'id':u'24c35...f12ae',u'spider':u'spider_name'},],'running':[{u'id':u'14a65...b27ce',u'spider':u'spider_name',u'start_time':u'2014-06-17 22:45:31.975358'},],'finished':[{u'id':u'34c23...b21ba',u'spider':u'spider_name',u'start_time':u'2014-06-17 22:45:31.975358',u'end_time':u'2014-06-23 14:01:18.209680'}]}

列出所有已注册的项目

>>>scrapyd.list_projects()[u'ecom_project',u'estate_agent_project',u'car_project']

列出给定项目可用的所有蜘蛛

>>>scrapyd.list_spiders('project_name')[u'raw_spider',u'js_enhanced_spider',u'selenium_spider']

列出注册到给定项目的所有版本

>>>scrapyd.list_versions('project_name'):[u'345',u'346',u'347',u'348']

计划作业与特定的蜘蛛一起运行:

# Schedule a job to run with a specific spider.>>>scrapyd.schedule('project_name','spider_name')# Returns the Scrapyd job id.u'14a6599ef67111e38a0e080027880ca6'

计划在传递覆盖设置时运行作业

>>>settings={'DOWNLOAD_DELAY':2}>>>scrapyd.schedule('project_name','spider_name',settings=settings)u'25b6588ef67333e38a0e080027880de7'

将作业调度为在将额外属性传递给蜘蛛初始化时运行:

>>>scrapyd.schedule('project_name','spider_name',extra_attribute='value')# NB: 'project', 'spider' and 'settings' are reserved kwargs for this# method and therefore these names should be avoided when trying to pass# extra attributes to the spider init.u'25b6588ef67333e38a0e080027880de7'

设置项目以贡献代码

请看CONTRIBUTING.md。这将引导您完成我们的请求 指导方针,项目设置和测试要求。

许可证

2条款BSD。请参阅完整的LICENSE

历史记录

2.1.1(2018-04-01)

  • 转换为降价的基本文档集(自述、作者、贡献者、历史记录)

2.1.0(2018-03-31)

  • 引入timeout关键字参数,该参数允许调用方指定 向scrapyd服务器发送请求的超时时间。它的工作原理是 根据潜在的requests库,并提高requests.exceptions.Timeout 超过超时时。有关用法,请参见文档。

2.0.1(2016-02-27)

v2.0.0附带的文档因取消而稍微过期 端点,此版本更正了这一点。

2.0.0(2016-02-27)

为什么是版本2?该包装已生产就绪,使用稳定 已经有一年多了,所以它已经准备好提交一个稳定的api/w版本。 版本1被故意跳过,以明确说明 此版本包含中断更改:

中断更改:

  • 取消作业终结点现在返回 取消了spider而不是简单的布尔值true/false。这个变化是 制作原因: a)布尔值返回相对无用,实际上隐藏了数据 scrapyd api作为cancel端点响应的一部分传递给我们。 b)在此更改之前,只有在 取消的作业以前正在运行,这导致我们错误地 当pending作业被取消时报告False。 这可能不需要更改代码库,但这是一个更改 在一个公共的api中,因此需要主版本碰撞。

其他更改:

  • cancel作业终结点现在接受一个signal关键字参数,它是 scrapyd用来取消蜘蛛作业的终止信号。如果没有 指定时,该值根本不会发送到scrapyd终结点,因此 允许scrapyd控制使用哪个默认信号(当前为TERM)。

0.2.0(2015-01-14)

  • 添加了新的job_status方法,该方法可以检索 项目中的特定作业。有关用法,请参见文档。
  • 增加和改进测试覆盖率。

0.1.0(2014-09-16)

  • 第一个版本是pypi。

欢迎加入QQ群-->: 979659372 Python中文网_新手群

推荐PyPI第三方库


热门话题
java JPanel不会对键绑定做出反应   当时间大于零时,不得在UI线程上调用java Await   JTextArea的java线程安全。追加   Java用户输入的字和行计数器   java以spreedsheat格式将数据保存到文件中   java构造函数的意义是什么?   java findViewById返回null,尽管组件的ID存在   java如何向按钮添加图像   java如何中断ExecutorService的线程   java如何将属性(例如枚举)绑定到不同类型的组件属性(例如每个枚举的映像)?   随机森林分类器的java实现   html使用java连接到一个站点并发布,HTTP状态代码200   从类访问属性时发生java编译错误   Java自动填充ArrayList,搜索更好的选项