【发布时间】:2020-10-15 17:27:28
【问题描述】:
我正在尝试从这个https://www.matchesfashion.com/intl/mens/shop/shoes?page=1 url 抓取所有鞋子数据,然后按照下一个按钮直到第 7 页。但是当我尝试这样做时,我收到 HTTP 状态代码未处理或不允许错误。
【问题讨论】:
标签: python scrapy scrapy-splash scrapy-shell
我正在尝试从这个https://www.matchesfashion.com/intl/mens/shop/shoes?page=1 url 抓取所有鞋子数据,然后按照下一个按钮直到第 7 页。但是当我尝试这样做时,我收到 HTTP 状态代码未处理或不允许错误。
【问题讨论】:
标签: python scrapy scrapy-splash scrapy-shell
您会看到输出重试了您的请求 3 次。所有这些请求都得到了服务器的响应,状态码为 429。该状态码意味着服务器拒绝了您的请求,因为您在某个时间段内发送了太多请求。
Scrapy 默认配置为忽略这些响应,因为它们不包含您要查找的数据。
要绕过此问题,请使用诸如 scraper API 或 Crawlera 之类的代理。 或者,在 scrapy 中增加 download_delay 直到不再被阻止。像这样:
class Website2Spider(scrapy.Spider):
download_delay = 2 #The number you write here will be how many seconds scrapy waits before sending another request.
【讨论】: