首页 > 解决方案 > 如何序列化和持久化一个scrapy请求以供以后使用?

问题描述

我正在编写一个下载器中间件,能够重新安排n天后重新抓取的任何请求。为了给您一个粗略的想法,以下是重新安排的请求的样子:

Request(
   url,
   headers={...},
   meta={
      'schedule_recrawl_on': <timestamp>
   },
   dont_filter=False,
   callback=self.parse_item
)

我的想法是用 pickle 序列化请求,将其保存在某个地方,然后将这些请求反序列化并在一段时间后注入调度程序。

callback=self.parse_item然而,用 pickle 进行序列化并不容易,因为该对象正在引用蜘蛛类上定义的外部方法。

文档中有关于此的警告,但没有明确的解决方案。

有没有人解决过类似的问题?也许使用另一个序列化主体?

标签: scrapy

解决方案


推荐阅读