python—cookielib模块对cookies的操做

最近用python写爬虫爬了点数据,确实是很好用的东西,今天对python如何操做cookie进行一下总结。python

python内置有cookielib模块操做cookie,配合urllib模块就能够了很轻易的爬取数据。cookie

 

#encoding:utf8
import urllib2
import cookielib

#获取cookie,并将保存在变量中的cookie打印出来
def Cookie():
    #声明一个CookieJar对象来保存cookie
    cookie = cookielib.CookieJar()
    #建立cookie处理器
    handler = urllib2.HTTPCookieProcessor(cookie)
    #构建opener
    opener = urllib2.build_opener(handler)
    #建立请求
    res = opener.open('http://www.baidu.com')
    for item in cookie:
        print 'name:' + item.name + '-value:' + item.value

#将cookie保存在文件中
def saveCookie():
    #设置保存cookie的文件
    filename = 'cookie.txt'
    #声明一个MozillaCookieJar对象来保存cookie,以后写入文件
    cookie = cookielib.MozillaCookieJar(filename)
    #建立cookie处理器
    handler = urllib2.HTTPCookieProcessor(cookie)
    #构建opener
    opener = urllib2.build_opener(handler)
    #建立请求
    res = opener.open('http://www.baidu.com')
    #保存cookie到文件
    #ignore_discard的意思是即便cookies将被丢弃也将它保存下来
    #ignore_expires的意思是若是在该文件中cookies已经存在,则覆盖原文件写入
    cookie.save(ignore_discard=True,ignore_expires=True)

#从文件中获取cookie而且访问(咱们经过这个方法就能够打开保存在本地的cookie来模拟登陆)
def getCookie():
    #建立一个MozillaCookieJar对象
    cookie = cookielib.MozillaCookieJar()
    #从文件中的读取cookie内容到变量
    cookie.load('cookie.txt',ignore_discard=True,ignore_expires=True)
    #打印cookie内容,证实获取cookie成功
    for item in cookie:
        print 'name:' + item.name + '-value:' + item.value
    #利用获取到的cookie建立一个opener
    handler = urllib2.HTTPCookieProcessor(cookie)
    opener = urllib2.build_opener(handler)
    res = opener.open('http://www.baidu.com')
    print res.read()
相关文章
相关标签/搜索