pyhon3.4 requests模块的使用
之前一直在研究爬虫的使用,网上的有关python爬虫的资料虽然虽然比较多,但是也很杂,有些程序使用的urllib2,有些使用http.client,比较杂,说的比较模糊,研究了一个星期才明白怎么post登陆抓取登陆信息,以及爬虫主要注意的一些方面
- POST的抓取
我使用的是Fiddler进行抓包分析,可以获得申请的requests,返回的response里面的数据进行分析,判断是否成功登陆,网上说的r.status 等等这些都实际上不能作为是否成功登陆的的依据。 - cookie和headers的包装
有些网站会进行cookies和headers的判断所以进行requests时候必须包含已经设计的headers和cookies
cookies是保证登陆数据的凭证,使用requests.Session()来自动保存cookie,你说需要做的就是先get一遍网页来获得cookie从而保证post数据的时候,cookie是原来网页的cookie而不是空
headers是必须自己进行设计的,可以使用网上的模板,也可以使用Fiddler截取的headers,都没有问题
当然有些网站还会检查headers里面Referer来判断是不是从该网站的某一个页面跳转到这个页面的,来屏蔽盗链什么的,so你需要的就是把Referer补充就OK 抓取网页的关键字段
可以使用正则表达式re模块来进行抓取,也可以使用bs4的BeautifulSoup模块来进行抓取都差不多,我就不谈了,看官方中文说明,更加具体仔细几种网页post需要模块的比较
- urllib:笨重而且缓慢,基于高层语言编辑的效率单线程下低下,测试i7配置,post登陆接近28s,我是服了,配置起来也异常复杂,而且本身不支持http一些高级功能,最不推荐使用
- http.client:基于底层,效率比较靠和requests速度差不多,配置也比较麻烦,不过貌似有Session()应该可以简化配置,不过我没试过
requests:用法简单,配置方便,具题看官网
- Word is Cheap,下面上王道。