Scrapy进阶使用中间件

Advanced Scrapy use Middleware

我想开发许多中间件以确保网站能够被解析。 这是我认为的工作流程:

我将创建一个自定义中间件,其 process_request 函数包含所有这 5 个方法。但我没有找到如何保存连接类型(例如,如果 TOR 不起作用,但直接连接是的,我想将此设置用于我的所有其他废料,用于同一网站)。如何保存此设置?

其他人认为,我有一个下载项目图像的管道。是否有使用此中间件(最好是保存设置)的解决方案?

在此先感谢您的帮助。

我认为您可以使用 retry middleware 作为起点:

  1. 您可以使用 request.meta["proxy_method"] 来跟踪您使用的是哪一个

  2. 您可以重复使用 request.meta["retry_times"] 以跟踪您重试给定方法的次数,然后在更改代理方法时将值设置为零。

  3. 您可以使用request.meta["proxy"]通过现有的 HTTP 代理中间件使用您想要的代理服务器。您可能想要调整中间件的顺序,以便重试中间件在代理中间件之前运行。