For ck in cj :
Ck.name=‘new name‘
Ck.value=‘new value‘
Cj.set_cookie(ck)
标签:
初学网络爬虫,参考
http://cuiqingcai.com/968.html以 及 http://blog.csdn.net/pleasecallmewhy/article/details/8923067
登录我自己学校的时候会遇到验证码的阻碍,比较简单的一个方法是绕过验证码,先手动登录一次,然后使用cookie保持登录状态。
可是这个登录的cookie怎么获得呢,在firefox中cookie是打包在一个文件中的,在ie中我居然找不到教务处网站的cookie……
文件找不到,但是这个cookie的value是可以找到的,通过fiddler或者HttpFox都可以, 然后我尝试了如http://tieba.baidu.com/p/3272054397提到的
1 import cookielib 2 import urllib2 3 4 #设置保存cookie的文件,同级目录下的cookie.txt 5 filename = ‘cookie.txt‘ 6 #声明一个MozillaCookieJar对象实例来保存cookie,之后写入文件 7 cookie = cookielib.MozillaCookieJar(filename) 8 #利用urllib2库的HTTPCookieProcessor对象来创建cookie处理器 9 handler = urllib2.HTTPCookieProcessor(cookie) 10 #通过handler来构建opener 11 opener = urllib2.build_opener(handler) 12 #创建一个请求,原理同urllib2的urlopen 13 response = opener.open("登录后重定向的网址") 14 #保存cookie到文件 15 cookie.save(ignore_discard=True, ignore_expires=True)
打开这个保存的cookie,我的长这样
# Netscape HTTP Cookie File # http://curl.haxx.se/rfc/cookie_spec.html # This is a generated file! Do not edit. 202.118.31.197 FALSE / FALSE JSESSIONID XFca9XUKVdIUyRz1xKSPvSK1kL0gHjcKHQkW6rs3MMyYwqV3rOja!1269920556
当然这个value值是不对的,如果对了就能登录了。。。
而正确的cookie如果用Flidder的工具查看就是
打个比方 Cookie: JSESSIONID=XFca9XUKVdIUyRz1xKasdasd0gHjcKHQkW6rs3MMyYwqV3rOja!1269920556
所以我们也就知道了要更改那些部分……
把正确的value填入以后再
1 import cookielib 2 import urllib2 3 4 #创建MozillaCookieJar实例对象 5 cookie = cookielib.MozillaCookieJar() 6 #从文件中读取cookie内容到变量 7 cookie.load(‘cookie.txt‘, ignore_discard=True, ignore_expires=True) 8 #创建请求的request 9 req = urllib2.Request("http://www.baidu.com") 10 #利用urllib2的build_opener方法创建一个opener 11 opener = urllib2.build_opener(urllib2.HTTPCookieProcessor(cookie)) 12 response = opener.open(req) 13 print response.read()
o(︶︿︶)o 终于登录成功了,,,撒花,接下来就是用正则表达式处理一下html页面
使用python的cookielib加载已保存的cookie维持登录状态
标签:
原文地址:http://www.cnblogs.com/autoria/p/5526762.html