使用代理或用户代理中间件时,Scrapy 似乎无法加载某些网站?
我正在尝试使用一些 HTTP 代理来使用 Scrapy,以减少爬取之间的持续时间,并且我似乎遇到了问题,无论我使用哪个中间件。 我尝试过最近的代理中间件如下(似乎是最新的): https://github.com/TeamHG-Memex/scrapy-rotating-proxies 以上代码对大多数网站都正常工作,但某些重复违反者遇到了问题。 我注意到,这些网站在尝试使用用户代理切换中间件时也会出现相同的连接问题。 只要我删除所有这些中间件(代理/用户代理),这些网站的问题就会消失。 我无法使用其中一个或两个访问它们。 我在这里提出此问题,而不是单个中间件的 GitHub,因为我似乎在全局范围内都遇到了这个问题,所以不确定这是否是一个内部问题。 最近的一个例子如下: https://very.co.uk https://www.very.co.uk https://www.very.co.uk/e/promo/shop-all-consoles.end?numProducts=100 我可以成功使用 scrapy fetch 访问 very.co.uk(传递我的用户代理),但是一旦我收到 301 重定向,就出现了问题,连接到重定向的 URL 失败。 我无法在使用代理时使用 Scrapy 成功获取或请求 https://www.very.co.uk。 起初,我怀疑我可能与我使用的代理有问题(即由于被封锁而导致访问被拒绝),因此我尝试使用 Curl 访问这两个页面,并成功接收到 301 响应以及随后的 HTTP 200(带有响应数据)的第二个 URL,我无法使用相同的代理在爬取或 fetch 时访问它。 curl --proxy http://myuser:mypass@myproxyip:80 -v -A "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/87.0.4280.88 Safari/537.36" "https://www.very.co.uk"
重现步骤
内容来源: scrapy/scrapy