一、获取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
第一次写博客 !哈哈哈 以前都是写一下云笔记。有错的欢迎指出 谢谢。。