1、创建与域名不一致的Request时,请求会报错
解决方法:创建时Request时加上参数dont_filter=True
2、当遇到爬取失败(对方反爬检测或网络问题等)时,重试,做法为在解析response时判断response特征,失败时yield Request(response.url),但是重试并没有发出去请求。
解决方法:原因时Scrapy的机制对于已经发送过的同url的request并不会再次发送,所以需要在构造Request加上参数dont_filter=True
3、解析到数据再pipelines中入库时,由于部分字段按预设的规则可能爬取不到,这时插库的sql会报错
解决方法:如果挨个字段判断的话太冗长了,所以这里选择用异常捕获的方式,放弃这部分数据而让爬虫顺利的执行下去
4、在爬取商品列表数据时,正则findall的方式,当其中某个商品假设其缺少了comment字段,在入库时就会导致顺序对应错乱
解决方法:使用Json解析的方法应该可以处理这个问题,但是用于Json解析效率太低,所以这里没处理
dont_filter=True
原文地址:https://www.cnblogs.com/duanzi6/p/9591480.html
时间: 2024-10-05 05:12:20