一日一技:Scrapy如何发起假请求?

一日一技:Scrapy如何发起假请求?

💡 原文中文,约2700字,阅读约需7分钟。
📝

内容提要

在Scrapy中,可以在pipelines.py中定义数据处理流程,但有些程序员滥用此功能。为避免直接请求外部URL,可以使用“data:,”作为假请求,以快速进入parse方法。此外,使用asyncio实现定时请求时,需先发起一次请求才能使用async,通过假请求可实现非阻塞的定时请求。

🎯

关键要点

  • 在Scrapy中,可以在pipelines.py中定义数据处理流程,但有些程序员滥用此功能。
  • 为了避免直接请求外部URL,可以使用'data:,'作为假请求,以快速进入parse方法。
  • 一些程序员通过在start_requests中请求一个URL来读取数据库中的数据,这种做法不够优雅。
  • 发送假请求可以让Scrapy看起来发起了HTTP请求,但实际上直接跳过。
  • 假请求的另一个应用场景是实现非阻塞的定时请求。
  • Scrapy支持asyncio,但start_requests方法不能使用async定义,需要先发起一次请求。
  • 使用假请求可以解决asyncio的使用限制,实现定时请求而不阻塞子请求。
➡️

继续阅读