十五年测试老手,长期负责WEB\APP 项目测试,目前主要负责团队管理工作。
【转】使用python爬虫抓站的一些技巧总结:进阶篇
上一篇 /
下一篇 2011-04-06 23:43:03
/ 个人分类:python
以前写过一篇使用
python爬虫抓站的一些技巧总结,总结了诸多爬虫使用的方法;那篇东东现在看来还是挺有用的,但是当时很菜(现在也菜,但是比那时进步了不少),很多东西都不是很优,属于”只是能用”这么个层次。这篇进阶篇打算把“能用”提升到“用得省事省心”这个层次。
:Q6m\j _p0一、gzip/deflate支持
51Testing软件测试网lYXo,Oz51Testing软件测试网[)Ci5Q!zeR,l现在的网页普遍支持gzip压缩,这往往可以解决大量传输时间,以VeryCD的主页为例,未压缩版本247K,压缩了以后45K,为原来的1/5。这就意味着抓取速度会快5倍。
'w;b2@
A)Nh
Du#G051Testing软件测试网*N4co)YI(O*Id.sk7qE然而python的urllib/urllib2默认都不支持压缩,要返回压缩格式,必须在request的header里面写明’accept- encoding’,然后读取response后更要检查header查看是否有’content-encoding’一项来判断是否需要解码,很繁琐琐碎。如何让urllib2自动支持gzip, defalte呢?
51Testing软件测试网6r^;r"|#u&[51Testing软件测试网n(uZX+mK%zSK其实可以继承BaseHanlder类,然后build_opener的方式来处理:
51Testing软件测试网D+q4NP/k6E"I1DlRq~
Ja4U|R;D0import urllib2
51Testing软件测试网E.F@*f+vt$V?zo8i#z'Dfrom gzip import GzipFile