没有项目描述

scrapy-block-inspector的Python项目详细描述


PyPI VersionBuild StatusWheel StatusCoverage report

概述

scrapy是一个很好的web爬行框架。这个包提供了一个蜘蛛 中间件,以高度定制的方式检查蜘蛛是否被阻塞。

要求

  • 在Python2.7和Python3.5上进行测试,但它应该在其他更高版本上工作 然后是python 3.3
  • 在Linux上测试,但它是一个纯Python模块,应该在其他 支持官方python的平台,如windows、mac osx、bsd

安装

快捷方式:

pip install scrapy-block-inspector

或者把这个中间件放在scrapy项目旁边。

文档

spider中间件中的块检查器,位于settings.py,例如:

# -----------------------------------------------------------------------------
# USER AGENT
# -----------------------------------------------------------------------------

SPIDER_MIDDLEWARES.update({
    'scrapy_block_inspector.spidermiddlewares.block_inspector.BlockInspector': 500,
})
BLOCK_INSPECTOR = 'scrapy_project.spiders.spider.inspect_block'
BLOCK_SIGNALS = ['scrapy_rotated_proxy.signals.proxy_block']
BLOCK_SIGNALS_DEFERRED = ['scrapy_httpcache.signals.response_block']
RECYCLE_BLOCK_REQUEST = 'scrapy_project.utils.recycle_block_request'

这个中间件将在stats收集器中添加一个新的stats,名为 “块检查员/块”。

设置参考

街区检查员

spidermiddleware中的一个函数,用于检查块,如果该函数被阻塞 将返回True,否则返回False

这个函数的输入是response

闭塞信号

当检查一个块时,这个spidermiddleware可以向爬虫程序的signal manager发送一个信号,让其他部分(中间件、扩展、统计信息、数据库、数据库、数据库、数据库、数据库、数据库、数据库、数据库、数据库、数据库、数据库、数据库、数据库、数据库、数据库、数据库、数据库、数据库、数据库、数据库、数据库、数据库、数据库和数据库等)使用 执行相关操作。

这应该是一份清单。

阻塞信号延迟

如果信号连接到将返回延迟的 对象,这个信号应该放在这个设置中。

这应该是一份清单。

循环块请求

回收被阻止请求的函数。有时阻塞请求需要 在进一步处理后回收,例如在 request.meta等

注意:在此中间件中,将自动添加“dont_filter=true”。

这个函数的输入是请求。

用于检查块的内置函数

inspect_block_google_recaptcha

这是一个检查google recaptcha块的函数。

要使用此检查器,请在“设置”中:

BLOCK_INSPECTOR = 'scrapy_block_inspector.utils.inspect_block_google_recaptcha.inspect_block'

请注意:在scrapy中,方法引发的异常 process_spider_input将首先发送到request.err_back,如果有 错误返回定义。所以请确保定义了异常BlockException。 通过这个中间件可以在err_back函数中触发 process_spider_exception正确。

待办事项

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

推荐PyPI第三方库


热门话题
java线程执行器服务   aspose如何通过java获得单词bookmark之前的所有文本内容?   一对一映射的java Hibernate合并问题   java SOAP XSD根元素问题   java如何保护我的Spring启动API   java使用GeoJson向google地图添加标记   java安卓:在SQLite中没有这样的列   java STS 2.8.0 StartExplorer/Legacy插件安装问题   java如何以编程方式获取AppBar高度?   在Java中将BigDecimal添加到BigDecimal   java不支持ntdll。dll是windows xp和windows vista的标准配置吗?   内容类型为application/xwwwformurlencoded的java Http Put请求在Spring中不起作用   java在数组中计算工资并返回答案   java数字/货币格式   elasticsearch java api中的弹性搜索查询