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()
相關文章
相關標籤/搜索