Scrapy爬取页面错误原因汇总

错误原因汇总

1.网址错误
2.缩进问题
3.网页有反爬虫
反爬虫解决方案:

  • 基本:请求头user-agent
  • IP代理
  • 改机器人协议以及cookie
    ROBOTSTXT_OBEY = False
    COOKIES_ENABLED = False
  • 设置延迟
     DOWNLOAD_DELAY = 3
  • 在分段函数中所要爬取的url有反爬虫
    解决方案:在请求的url后面添加头文件如以下,头文件可以从问题三的附录中随机取

url获取出错示例

url = response.selector.xpath(’//*[@class=‘lbf-pagination-item-list’]//li[9]/a/@href’).extract()[0]
print(url)
yield scrapy.Request(url, callback=self.parse)
如上图代码,scrapy 爬虫过程中,在实现翻页时,偶然遇见如下报错:
Missing scheme in request url:
百度许多同学总结了一下原因:
1.requests版本太低:
2.scrapy.Resquest(URL),url 应该是一个list…

但是实际问题并不是这些原因所致

经过反复研究,发现 上图代码中获取的到 url 链接内部,用“;”替代了“&”。因此scrapy 不能识别 该网页所致。
解决办法:
1.改用URL 拼接而成的url list 做yield 调用self.parse
2.页面本来可能纯在一些问题。等待页面更新,正常页面链接不应该使用“;”(刚开始使用1方法实现了。后来,准备用原始代码记录错误时,发现页面已经更新为“&”,该报错已经不纯在)。

相关文档:

https://blog.csdn.net/weixin_41931602/article/details/80200695

猜你喜欢

转载自blog.csdn.net/Yuyh131/article/details/83594246