前段时间有个爬虫的需求,爬的什么网站的数据就不说了,简单介绍下在学习scrapy这中间踩的坑吧。
1、在爬取数据的时候,一定要想办法将爬虫伪装成一个浏览器,可以通过设置cookie和请求头的信息。这个具体的方法很多,随便百度一个关键词“scrapy设置请求头”,就可以出来一大堆答案。裸奔的话频率小点没啥事,但是访问频率比较高的话就会被302掉。甚至会被短时间内封掉ip,建议设置一个请求头比较保险。2、使用scrapy时,要学会使用meta来传参。
3、要深入理解yield的用法。
4、item的使用尽量将需要的字段给他,不要给无关紧要的字段。
5、碰到异步请求的页面是,耐心找找异步请求的链接获取格式。一般来讲,请求的链接都是固定的,只是某一个相关的参数不同。拼接请求就可以了。
6、碰到js渲染的页面时,需要使用phantomjs来加载js渲染后页面,phantomjs更像一个隐藏的浏览器,能获取到最全面的页面信息,使用时需要自己写一个js加载文件。网上很多。最便捷的就是通过标准输出将页面返回给主逻辑。