前言
项目组要我爬取一些营养数据,过程曲折,还是有许多体会的,总结一下,防止以后在入坑
注意事项
- 存取爬取数据时,要保留数据来源的url,以便以后发现数据有误以后可以矫正
- 如果插入数据到有外键的数据库,一定要把所有的插入语句组成一个事务,否则一旦出现异常,数据就不一致了
- 存储文本信息到mysql时尽量使用text类型,指不定就爆出长度不够
- 要做好重复处理的标记,我习惯使用广度优先,一批一批的存url,存储待爬取url的数据表需要有status字段,以便判断爬取url对应网页的数据时是否出现错误,毕竟网页格式可能会发生变换
- 先设计好表结构后在写代码,我之前先写好了爬取代码,结果师兄给我的表结构的存储类型中有json,费了我一些精力才改过自己的代码
- 爬取频率自己要摸透,因为不同网站采取的反爬策略是不一样的,有些可能返回HTTP状态码,有些可能放毒(最可怕),有些可能封禁IP(例如豆瓣的封禁IP,不过豆瓣可以很容易判断自己是不是被封了),所以尽可能的不要被封禁,被封禁,麻烦可能就大了,尤其是放毒
- 存取爬取数据的数据表可能有多个,一般我会把id作为主键,如果一个表格有外键,外键尽量不要引用主键(id),因为表格一旦合并,id就全变了,外键就没用了
关于爬虫,自己还是不够ok,看看如何进一步学习吧