我如何在Scrapy中有条件地重试和重新封装当前页面?

时间:2013-03-24 19:20:12

标签: python web-scraping scrapy

我是Scrapy的新手,对Python来说并不太令人印象深刻。我有一个刮刀设置来从网站上抓取数据,但是虽然我使用代理,如果使用相同的代理次数太多次,那么我的请求会显示一个页面告诉我我太快访问了太多页面(HTTP状态代码200)。

当我的刮刀看到页面的状态代码没问题时,它找不到所需的数据并转到下一页。

我可以确定何时通过HtmlXPathSelector显示这些页面,但我如何通知Scrapy重试该页面?

1 个答案:

答案 0 :(得分:3)

Scrapy附带内置retry middleware。您可以对其进行子类化并覆盖process_response方法以包含检查,以查看是否显示过快速访问过多页面的页面正在显示