python - 我如何有条件地重试并重新抓取 Scrapy 中的当前页面?

标签 python web-scraping scrapy

我是 Scrapy 的新手,对 Python 不是很了解。我已经设置了一个抓取器来从网站上抓取数据,但是虽然我使用的是代理,但如果同一个代理被使用太多次,那么我的请求会显示一个页面,告诉我我访问太多页面的速度太快了(HTTP 状态代码 200)。

正如我的抓取工具所看到的页面状态代码一样,它没有找到所需的数据并移至下一页。

我可以通过 HtmlXPathSelector 确定这些页面何时显示,但是我如何向 Scrapy 发出重试该页面的信号?

最佳答案

Scrapy 自带一个内置的 retry middleware .您可以将其子类化并覆盖 process_response方法包括检查是否显示告诉您您访问太多页面太快的页面

关于python - 我如何有条件地重试并重新抓取 Scrapy 中的当前页面?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15602857/

相关文章:

python - 如何在python中找出具有相同结构的两个列表?

xpath - 将XPath与CasperJS QuerySelectorAll一起使用不起作用

python - Selenium 在元素中查找元素

css - 如何创建一个 CSS 选择器以使用 th 的内容选择 td 的内容?

python - 如何使用python下载推送到浏览器的文件?

Python多线程,同时运行两个函数

python - Django elasticsearch DSL术语和短语搜索不起作用

python - 如何为给定 X、Y 坐标和时间的 2D 散点图设置动画,并带有出现和消失的点?

python - Scrapy 获取跨多行和嵌套元素内的文本

python - Scrapy 输出 [ 到我的 .json 文件中