我們在使用爬蟲的時候,經常會用到cookie進行模擬登陸和訪問。在使用urllib庫做爬蟲,我們需要藉助http.cookiejar庫中的CookieJar來實現。
cookiejar怎麼樣
CookieJar類有一些子類,分別是FileCookieJar,MozillaCookieJar,LWPCookieJar。
CookieJar:管理HTTPcookie值、存儲HTTP請求生成的cookie、向傳出的HTTP請求添加cookie的對象。整個cookie都存儲在內存中,對CookieJar實例進行垃圾回收後cookie也將丟失。
FileCookieJar(filename,delayload=None,policy=None):從CookieJar派生而來,用來創建FileCookieJar實例,檢索cookie信息並將cookie存儲到文件中。filename是存儲cookie的文件名。delayload為True時支持延遲訪問訪問文件,即只有在需要時才讀取文件或在文件中存儲數據。
MozillaCookieJar(filename,delayload=None,policy=None):從FileCookieJar派生而來,創建與Mozilla瀏覽器cookies.txt兼容的FileCookieJar實例。
LWPCookieJar(filename,delayload=None,policy=None):從FileCookieJar派生而來,創建與libwww-perl標準的Set-Cookie3文件格式兼容的FileCookieJar實例。
其實大多數情況下,我們只用CookieJar(),如果需要和本地文件交互,就用MozillaCookjar()或LWPCookieJar()。
當然,如果我們對cookie有定製的需要,那麼我們也要藉助HTTPCookieProcess處理器來處理。具體看下面代碼。
使用CookieJar獲取cookie值
代碼如下:
if__name__=='__main__':
url='http://www.baidu.com/'
headers={
'User-Agent':'Mozilla/5.0(WindowsNT10.0;WOW64)AppleWebKit/537.36(KHTML,likeGecko)Chrome/53.0.2785.104Safari/537.36Core/1.53.3427.400QQBrowser/9.6.12513.400'
}
總之,cookiejar給大家簡單的介紹了一些,希望大家多看看。