没有项目描述
scrapy-block-inspector的Python项目详细描述
概述
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正确。