scrapy spider中间件使用scrapinghub的集线器爬行边界作为url的后端

scrapy-hcf的Python项目详细描述


https://travis-ci.org/scrapy-plugins/scrapy-hcf.svg?branch=masterhttps://codecov.io/gh/scrapy-plugins/scrapy-hcf/branch/master/graph/badge.svg

这个scrapy spider中间件使用来自scrapinghub的hcf后端 scrapy云服务检索要爬网的新url 并存储提取的链接。

安装

使用pip

$ pip install scrapy-hcf

配置

要激活这个中间件,需要将它添加到SPIDER_MIDDLEWARES dict,即:

SPIDER_MIDDLEWARES = {
    'scrapy_hcf.HcfMiddleware': 543,
}

需要定义以下设置:

HS_AUTH
Scrapy Cloud API密钥
HS_PROJECTID
scrapy cloud项目id(如果spider在dash上运行,则不需要)
HS_FRONTIER
边界名称。
HS_CONSUME_FROM_SLOT
蜘蛛将从中读取新URL的槽。

注意HS_FRONTIERHS_CONSUME_FROM_SLOT可以被重写 从蜘蛛内部使用蜘蛛属性hs_frontier 分别是hs_consume_from_slot

可以定义以下可选的刮擦设置:

HS_ENDPOINT
指向api端点的url,即:http://localhost:8003。 默认值由python hubstorage包提供。
HS_MAX_LINKS
要从HCF读取的链接数,默认为1000。
HS_START_JOB_ENABLED
启用蜘蛛完成时是否启动新作业。 默认值是False
HS_START_JOB_ON_REASON
这是结案原因列表, 如果蜘蛛以这些原因中的任何一个结束,新的工作将开始 对于同一个插槽。默认值是['finished']
HS_NUMBER_OF_SLOTS
这是中间件用于存储新链接的插槽数。 默认值为8。

用法

为了控制行为,可以在scrapy请求元中定义以下键 关于HCF中间件:

'use_hcf'
如果设置为True,则请求将存储在HCF中。
'hcf_params'

要与请求指纹一起存储在HCF中的参数字典

'qdata'
要与指纹一起存储在请求队列中的数据
'fdata'
要与指纹集中的指纹一起存储的数据
'p'
优先级-首先返回较低优先级的数字。默认值为0

'qdata'参数的值稍后可以使用 response.meta['hcf_params']['qdata']

通过设置 spiderslot_callback方法指向具有以下签名的函数:

def slot_callback(request):
    ...
    return slot

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

推荐PyPI第三方库


热门话题
jframe为什么JAVA paint()方法不起作用?   java Guice:将ContainerRequestContext注入拦截器   java如何优雅地关闭Spring JMS MessageListenerAdapter   java如何在Spring中设置快照隔离级别   Java中的安卓平台独立信任存储路径   java无法在eclipse中运行hello world程序   java Sinch空指针问题   使用Java将JSON流式传输到BigQuery   java从“大数据”中选择什么Swing控件?   java通过对象字段过滤/排序集合?   java将数据从活动传递到另一个活动中的片段   java访问打包在jar文件中的文档   Java获取事件的大小。getDragboard()。getFiles()。流()。映射(文件::长度)。toString());   java Android libgdx:启动程序图标按下后,启动屏幕不会立即显示   java如何在Google App Engine灵活环境中配置oracle jdk   java有没有办法减少这些行?   Java:客户端socket不读取第二行,在终止符行之后保持打开状态   java以编程方式获取api 29上的所有APK文件   java ActionBar按钮不显示