使用Scrapy编写爬虫程序中遇到的问题及解决方案记录

Posted duanzi6

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了使用Scrapy编写爬虫程序中遇到的问题及解决方案记录相关的知识,希望对你有一定的参考价值。

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

以上是关于使用Scrapy编写爬虫程序中遇到的问题及解决方案记录的主要内容,如果未能解决你的问题,请参考以下文章

Scrapy爬虫框架安装及简单使用

Python之Scrapy爬虫框架安装及简单使用

Python之Scrapy爬虫框架安装及简单使用

Python爬虫 ---scrapy框架初探及实战

零基础写python爬虫之使用Scrapy框架编写爬虫

python的scrapy框架爬虫基础