一、获取Cookie 并打印出来。
#声明一个CookieJar对象实例来保存cookie cookie = cookielib.CookieJar() #利用urllib2库的HTTPCookieProcess对象来创建cookie处理器 handler = urllib2.HTTPCookieProcessor(cookie) #通过hanlder来创建opener openr = urllib2.build_opener(handler) #此处的open 方法同 urllib2的urliopen方法,也可以传入 request response = openr.open("http://www.baidu.com") for item in cookie: print 'Name =' + item.name print 'Value =' + item.value二、实现将cookie 保存到本地文件中
#设置保存cookie的文件,同级目录下的cookie.txt filename = 'cookie.txt' #声明一个MozillaCookieJar对象实例来保存cookie,之后写入文件 cookie = cookielib.MozillaCookieJar(filename) #利用urllib2库的HTTPCookieProcessor对象来创建cookie处理器 handler = urllib2.HTTPCookieProcessor(cookie) #通过handler来构建opener opener = urllib2.build_opener(handler) #创建一个请求,原理同urllib2的urlopen response = opener.open("http://www.baidu.com") #保存cookie到文件 cookie.save(filename,ignore_discard=True,ignore_expires=True)三、实现 从本地文件中读取cookie 并访问
#创建MozillaCookieJar实例对象 cookie = cookielib.MozillaCookieJar() #从文件中读取cookie内容到变量 cookie.load('cookie.txt',ignore_expires=True,ignore_discard=True) #创建请求的request req = urllib2.Request('http://www.baidu.com') #利用urllib2的build_opener方法创建一个opener opener = urllib2.build_opener(urllib2.HTTPCookieProcessor(cookie)) response = opener.open(req) print response.read()四、实现 利用 cookie 模拟登陆 豆瓣
headers = { 'User-Agent': 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10.12; rv:51.0) Gecko/20100101 Firefox/51.0' } filename = 'cookie.text' cookie = cookielib.MozillaCookieJar(filename) opener = urllib2.build_opener(urllib2.HTTPCookieProcessor(cookie)) #构建一个post数据 postdata = urllib.urlencode({ 'form_email':'XXXXXXXX', 'form_password':'XXXXXXXXX' }) loginUrl = 'https://www.douban.com/accounts/login' req = urllib2.Request(url=loginUrl,headers=headers) result = opener.open(req,postdata) cookie.save(filename,ignore_discard=True, ignore_expires=True) #直接带上cookie 访问首页 secondUrl = 'https://www.douban.com/' request = urllib2.Request(url=secondUrl,headers=headers) result = opener.open(request) html = result.read() selector = etree.HTML(html) links = selector.xpath('//*[@id="db-global-nav"]/div/div[1]/ul/li[2]/a/span[1]') #返回账号的名字 print links[0].text第一次写博客 !哈哈哈 以前都是写一下云笔记。有错的欢迎指出 谢谢。。