我注意到scrapy将抓取两个仅在方案上有所不同的页面,例如“ http://www.google.com”和“ https://www.google.com”,这实际上会使我的请求增加一倍。有什么办法可以过滤掉其中一半?
答案 0 :(得分:1)
没有通用方法。根据您的特定情况,可能会采用不同的解决方案,或者可能没有好的解决方案。
如果问题出在特定域上,您只需编写您的Spider,以便在产生新请求时它将使用正确的协议。
如果是针对任意数量的域的广泛抓取,则可能会有些棘手。大多数域会将HTTP重定向到HTTPS,但是某些域会将HTTPS流量重定向到HTTP。
在后一种情况下,如果问题是在HTTPS页面上获得HTTP链接,然后将其重定向回HTTPS,则可以更改蜘蛛程序以从response.url
读取协议,并在构建请求,而不使用您找到的URL。但是某些内容实际上可能是HTTP,并且由于协议更改,您会收到错误的响应。