python—cookielib模塊對cookies的操作


最近用python寫爬蟲爬了點數據,確實是很好用的東西,今天對python如何操作cookie進行一下總結。

python內置有cookielib模塊操作cookie,配合urllib模塊就可以了很輕易的爬取數據。

 

#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()

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM