一只健壮的爬虫是怎样炼成的
Python新人,爬虫玩的多了,渐渐的也有了自己的一些感悟,这里不谈具体操作,就写了几条自己的总结,每一条背后都是失败的经验教训,当你把爬虫“放心”的运行一晚上后,一大早起来发现程序早就异常死掉了,很多都没爬到时,你就知道下面这些建议的意义了。
1.爬虫必须
增加容错处理
,不能因为一个错误就终止整个程序;
2.重要的内容请时刻
保存为文件
,防止程序异常终止时,丢失所有已爬取信息;
3.最好
增加错误清单
:当面对大量数据时,很难说一次就能成功爬取全部内容,当产生不期的错误时,将爬取失败的此条链接保存下来(文件),以便于后面分析错误原因和再次爬取
4.最好能
分步骤爬取
,减少失败风险,如第一步爬取所有链接,第二步再爬取所有链接内的内容;
5.爬取过程适当
显示关键点信息
(如成功访问网页后可显示网页title),便于知道每一小段程序运行状态,就算出错了也能知道错在那一块。
6.优秀的爬虫
多次爬取不会重复
:“不会重复”是指不产生重复内容,也不重复爬取。最好的爬虫是能够在程序异常中断后,再启时可以从任何位置开始爬取;次之的爬虫则是
每次爬取时增加重复判断功能
,比如爬虫爬取一部分后意外中断或卡住,那么再次爬取时可以读取之前爬取的文件列表,将这部分已爬取的从整体中去除(用python的差集运算),爬取未爬取的即可。
7.人道主义,
爬取不可太频繁
占用网站服务器,也是为了避免自己被反爬限IP