跳转到主要内容

Scrapy爬虫中间件,使用Scrapinghub的Hub Crawl Frontier作为URL的后端

项目描述

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

这个Scrapy爬虫中间件使用Scrapinghub的Scrapy Cloud服务的HCF后端来检索要爬取的新URL并将提取的链接存储回。

安装

使用pip安装scrapy-hcf

$ pip install scrapy-hcf

配置

要激活此中间件,需要将其添加到 SPIDER_MIDDLEWARES 字典中,即

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

以下设置需要定义

HS_AUTH

Scrapy Cloud API 密钥

HS_PROJECTID

Scrapy Cloud 项目 ID(如果蜘蛛在 dash 上运行则不需要)

HS_FRONTIER

Frontier 名称。

HS_CONSUME_FROM_SLOT

蜘蛛将从中读取新 URL 的槽位。

注意,HS_FRONTIERHS_CONSUME_FROM_SLOT 可以通过蜘蛛的属性 hs_frontierhs_consume_from_slot 在蜘蛛内部进行覆盖。

以下可选的 Scrapy 设置可以定义

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 请求 meta 中定义以下键以控制 HCF 中间件的行为

'use_hcf'

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

'hcf_params'

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

'qdata'

与指纹一起存储在请求队列中的数据

'fdata'

与指纹一起存储在指纹集中的数据

'p'

优先级 - 优先级较低的数字先返回。默认为 0

'qdata' 参数的值可以使用 response.meta['hcf_params']['qdata'] 查询。

蜘蛛可以通过将蜘蛛的 slot_callback 方法设置为具有以下签名的函数来覆盖默认的槽位分配函数

def slot_callback(request):
    ...
    return slot

项目详情


下载文件

下载您平台的文件。如果您不确定选择哪个,请了解有关 安装包 的更多信息。

源分布

scrapy-hcf-1.0.0.tar.gz (4.4 kB 查看散列)

上传时间

构建分布

scrapy_hcf-1.0.0-py2.py3-none-any.whl (4.8 kB 查看散列)

上传时间 Python 2 Python 3

由以下机构支持

AWSAWS 云计算和安全赞助商 DatadogDatadog 监控 FastlyFastly CDN GoogleGoogle 下载分析 MicrosoftMicrosoft PSF赞助商 PingdomPingdom 监控 SentrySentry 错误记录 StatusPageStatusPage 状态页面