一个像蜘蛛回调那样写协同程序的装饰器。

scrapy-inline-requests的Python项目详细描述


零星内联请求

https://img.shields.io/pypi/v/scrapy-inline-requests.svghttps://img.shields.io/pypi/pyversions/scrapy-inline-requests.svgDocumentation Statushttps://img.shields.io/travis/rolando/scrapy-inline-requests.svgCoverage StatusCode Quality StatusRequirements Status

一个像蜘蛛回调那样写协同程序的装饰器

快速启动

下面的爬行器显示了一个简单的使用案例,它可以抓取一个页面并跟随几个链接:

frominline_requestsimportinline_requestsfromscrapyimportSpider,RequestclassMySpider(Spider):name='myspider'start_urls=['http://httpbin.org/html']@inline_requestsdefparse(self,response):urls=[response.url]foriinrange(10):next_url=response.urljoin('?page=%d'%i)try:next_resp=yieldRequest(next_url)urls.append(next_resp.url)exceptException:self.logger.info("Failed request %s",i,exc_info=True)yield{'urls':urls}

有关更复杂的蜘蛛,请参见examples/目录。

警告

当处理请求的响应时,生成器恢复其执行, 这意味着生成器在生成一个项目或请求后将无法恢复 有自己的回拨

已知问题

  • Middleware可以删除或忽略导致回调的非200状态响应 不继续执行。这可以通过使用标志来克服 handle_httpstatus_all。请参阅httperror middleware文档。
  • 高并发性和大响应会导致更高的内存使用率。
  • 此装饰器假定您的方法具有以下签名 (self, response)
  • 包装的请求可能无法由持久后端序列化。
  • 除非你知道你在做什么,否则装饰的方法一定是蜘蛛 方法并返回一个generator实例。

历史记录

0.3.1(2016-07-04)

  • 添加了关于修饰非蜘蛛函数的建议
  • 如果回调返回设置了回调或errback的请求,则发出警告这个 用回调还原请求的兼容性。

0.3.0(2016-06-24)

  • ~~向后不兼容更改:向请求对象添加了更多限制(无回调/错误返回)。~~~
  • 在将请求发送回 发电机。这将修复使用request.replace()时的边大小写。
  • 简化的蜘蛛示例。

0.2.0(2016-06-23)

  • 支持Python3。

0.1.2(2016-05-22)

  • 零星的API和文档更新

0.1.1(2013-02-03)

  • 小调整和修复。

0.1.0(2012-02-03)

  • pypi上的第一个版本。

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

推荐PyPI第三方库


热门话题
java如何在Android Wifi中筛选相同的SSID?   Java中重写接口中异常处理的泛型   java“无效转义序列(有效的是\b\t\n\f\r\”\“\”\)”语法错误   使用JNDI的java NameReadyBoundException   java如何在这个程序上执行算法   java为什么我的应用程序在调试时崩溃而应用程序停止?   Java:while循环未检测到中断条件,但如果块检测到   java如何快速使用jfreechart创建的折线图   java将输入放入JSTL会话变量,以便稍后在屏幕上显示   java在spring boot中加载外部JAR   java Apache NiFi无法使用ojdbc6连接到Oracle 12c。jar或ojdbc8。罐子   java解释StringToWordVector()Weka的输出   java charAt()找不到符号   使用mpjexpress的java阅读控制台输入