我是 Scrapy 的新手,对 Python 并不太熟悉。我已经设置了一个刮板来从网站上刮取数据,但是虽然我正在使用代理,但如果同一个代理被使用太多次,那么我的请求会显示一个页面,告诉我我访问的页面太多太快了(HTTP 状态码 200)。
当我的爬虫看到页面的状态代码正常时,它没有找到所需的数据并转到下一页。
我可以确定这些页面何时通过 HtmlXPathSelector 显示,但我如何向 Scrapy 发出信号以重试该页面?
我是 Scrapy 的新手,对 Python 并不太熟悉。我已经设置了一个刮板来从网站上刮取数据,但是虽然我正在使用代理,但如果同一个代理被使用太多次,那么我的请求会显示一个页面,告诉我我访问的页面太多太快了(HTTP 状态码 200)。
当我的爬虫看到页面的状态代码正常时,它没有找到所需的数据并转到下一页。
我可以确定这些页面何时通过 HtmlXPathSelector 显示,但我如何向 Scrapy 发出信号以重试该页面?
Scrapy 带有一个内置的retry
中间件。您可以对其进行子类化并覆盖该process_response
方法以包含一个检查以查看告诉您您访问太多页面的页面是否显示得太快