您的位置:首页 > 编程语言 > Python开发

我是怎么用python采集wooyun社区帖子的。

2013-10-05 22:42 387 查看
import urllib2

class SimpleCookieHandler(urllib2.BaseHandler):
def http_request(self, req):
simple_cookie = 'PHPSESSID=fcf3c469c3c80f3e8480aca76c87faa;ocKey=c9821225458886fa8329cccc283e60e;wy_uid=b52fOIbsG%2BB6kyNmyU9esuL%2FRb8GTatlM4n5ghw7dP4;wy_pwd=f770PcQrsQ2YyEUO07ouNVJxMxXvONgOQHcoXQ%2Bm4xJC22oosvWGDL6RJU09fIwTNkO9JTZ9yQMWXiszw'
if not req.has_header('Cookie'):
req.add_unredirected_header('Cookie', simple_cookie)
else:
cookie = req.get_header('Cookie')
req.add_unredirected_header('Cookie', simple_cookie + '; ' + cookie)
return req

opener = urllib2.build_opener(urllib2.HTTPCookieProcessor(), SimpleCookieHandler());
urllib2.install_opener(opener);

while 1:
for n in range(4,10):
resp = urllib2.urlopen('http://zone.wooyun.org/content/'+repr(n));
file = open('c:\\'+repr(n)+'.html', 'w')
for line in resp.read():
file.write(line)
file.close()
break;


首先定义个cookie类参考http://blog.csdn.net/uestcyao/article/details/7896184,把收集到的cookie放到simple_cookie内。使用urllib2模块完成整个功能。

说明:刚开始打算使用登录功能,自动提交cookie,要用到cookielib模块。后来发现需要验证码,折腾半天觉得验证码还是比较难缠的问题。暂时改变思路使用自己登录时采集的cookie进行提交。就可以模拟登录者的身份进行采集了。以后会研究验证码方面的功能。解决验证码方面的困扰。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  python cookie