使用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

原文地址:https://www.cnblogs.com/duanzi6/p/9591480.html

时间: 2024-10-05 05:12:20

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

编写爬虫程序的神器 - Groovy + Jsoup + Sublime

写过很多个爬虫小程序了,之前几次主要用C# + Html Agility Pack来完成工作.由于.NET BCL只提供了"底层"的HttpWebRequest和"中层"的WebClient,故对HTTP操作还是需要编写很多代码的.加上编写C#需要使用Visual Studio这个很"重"的工具,开发效率长期以来处于一种低下的状态.   最近项目里面接触到了一种神奇的语言Groovy -- 一种全面兼容Java语言且提供了大量额外语法功能的动态语

编写爬虫程序的神器 - Groovy + Jsoup + Sublime(转)

写过很多个爬虫小程序了,之前几次主要用C# + Html Agility Pack来完成工作.由于.NET FCL只提供了"底层"的HttpWebRequest和"中层"的WebClient,故对HTTP操作还是需要编写很多代码的.加上编写C#需要使用Visual Studio这个很"重"的工具,开发效率长期以来处于一种低下的状态. 最近项目里面接触到了一种神奇的语言Groovy -- 一种全面兼容Java语言且提供了大量额外语法功能的动态语言.

关于编写Windows程序中启动兼容性问题

之前用qt4编写Windows程序的时候遇到了一个软件在系统的兼容性问题:用户在win10系统下使用这个程序的时候,如果没有用低于win10版本的兼容模式运行的时候,存在运行某部分功能的时候无法使用的问题. 这个问题一开始困扰了我很久,那时我认为的解决方案有两种: 1.将软件从qt4迁移到qt5上 不过在对软件的大小是有限制的,之所以一开始用qt4写这个项目是因为qt4的模块相对于qt5来说小很多,因此这个方案被我否决了 2.程序自启动的时候将系统兼容性设置为win10以下的版本类型 在否决了第

编写JavaWeb程序中遇到的一些错误以及解决方案

1:com.microsoft.sqlserver.jdbc.SQLServerException: 对象名 'books' 无效.这个是SQL语句中数据库表名不正确 2:com.microsoft.sqlserver.jdbc.SQLServerException: 索引 2 超出范围ptmt = conn.prepareStatement(sql);//你怎么这步都没有呢.?或者是sql书写错误 后续还会添加一些错误和原因

LOL游戏程序中对一些函数的Hook记录(Win10 x64)

[PC Hunter Standard][League of Legends.exe-->Ring3 Hook]: 108Hooked Object Hook Address and Location Type Current Value Original Value[*]len(4) League of Legends.exe 0x0000000000AC6785->_ inline C7 86 20 01 00 00 00 00[*]len(4) League of Legends.exe

震惊!编写“爬虫”,怎么“面向监狱编程”了?

2019年9月以来,不少因为非法使用“爬虫”技术,而使公司面临诉讼,程序猿被警察带走的新闻震惊了IT圈的小伙伴们! 我只是个写爬虫的,跟我有什么关系? 许多程序员都有这样的想法,技术是无罪的,我只是个打工的程序员,公司干违法的业务,跟我没关系...只能说,程序猿们真是图样图森破了. 看到那么多爬虫导致公司触犯法律的新闻,有人开玩笑说,编写爬虫程序,就是“面向监狱编程”. 看个案例: 抓取用户社交数据,尤其是用户隐私相关. (图片文字来自新浪网) 其实,“爬虫”只是一种技术,没有那么可怕如果使用技

qt进程编程的使用:一个程序中调用另一个程序

在QT编程中有时候需要调用一个已经写好的程序来处理正在编写的程序中的数据,这个时候就 需要用到进程来调用那个已经写好的程序. 事先编写好一个layout程序: #include<QApplication> #include<QPushButton> #include<QGridLayout> #include<QLabel> #include<QLineEdit> #include<QMainWindow> int main(int

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

网络爬虫,是在网上进行数据抓取的程序,使用它能够抓取特定网页的HTML数据.虽然我们利用一些库开发一个爬虫程序,但是使用框架可以大大提高效率,缩短开发时间.Scrapy是一个使用Python编写的,轻量级的,简单轻巧,并且使用起来非常的方便.使用Scrapy可以很方便的完成网上数据的采集工作,它为我们完成了大量的工作,而不需要自己费大力气去开发. 首先先要回答一个问题. 问:把网站装进爬虫里,总共分几步? 答案很简单,四步: 新建项目 (Project):新建一个新的爬虫项目 明确目标(Item

教你分分钟学会用python爬虫框架Scrapy爬取心目中的女神

欢迎加入Python学习交流群:535993938  禁止闲聊 ! 名额有限 ! 非喜勿进 ! 本博文将带领你从入门到精通爬虫框架Scrapy,最终具备爬取任何网页的数据的能力.本文以校花网为例进行爬取,校花网:http://www.xiaohuar.com/,让你体验爬取校花的成就感. Scrapy,Python开发的一个快速,高层次的屏幕抓取和web抓取框架,用于抓取web站点并从页面中提取结构化的数据.Scrapy用途广泛,可以用于数据挖掘.监测和自动化测试. Scrapy吸引人的地方在于