怎样使用Scrapy“重新解析”存储在数据库中的HTML页面?

2024-04-26 02:26:57 发布

您现在位置:Python中文网/ 问答频道 /正文

我用Scrapy在我的数据库中记录了html页面。我想用同样的管道重新分析它们。如何从数据库中获取页面,使其与正常的Scrapy管道遵循相同的管道?你知道吗


Tags: 数据库管道html记录页面scrapy
1条回答
网友
1楼 · 发布于 2024-04-26 02:26:57

您可以编写自己的downloader middleware,并模仿标准HttpCacheMiddleware所做的工作。详细信息取决于您希望如何进行以及是否要重用当前的spider。你知道吗

如果您想使用currect spider,那么您的中间件必须:

  1. process_request方法中获取每个请求的指纹。你知道吗
  2. 将此指纹与保存的HTML页匹配。你知道吗
  3. Return Response由该HTML创建。你知道吗

优点是你不必触摸你的蜘蛛。缺点是网站可能在此期间发生了更改,并且当前内容不必与保存的内容完全匹配。你知道吗

如果要创建新的spider或修改currect,则:

  1. spider应该实现start_requests方法,并产生中间件可以处理的Request(例如文件名、数据库id)。你知道吗
  2. 基于Request,中间件读取保存的页面并返回由HTML构建的Response。你知道吗

这样做的好处是你可以准确地处理你所保存的东西。缺点是您必须为此实现另一个spider。你知道吗

相关问题 更多 >