爲何要使用 cookie 信息來進行爬蟲呢?作後端的朋友們都知道,通常狀況下,在服務器上發佈接口都是要設置身份信息驗證,驗證的方式就是經過 cookie 信息中包含的身份認證來進行驗證。在身份驗證經過以後,才能獲取到響應接口的信息,因此,掌握這一點在爬蟲過程當中也是極爲必要,否則只能爬取一些不須要驗證的公開信息,話很少說,咱們進入實戰環節。python
一、導入依賴的第三方擴展庫後端
1# -*- coding: UTF-8 -*- 2 3# 導入 urllib 庫,對請求參數進行編碼 4import urllib 5 6# 導入 urllib2 庫,完成網絡請求 7import urllib2 8 9# 導入 cookielib 庫,用於操做 cookie 信息 10import cookielib
二、登陸網站並提取 cookie 信息進行保存服務器
1# 設置文件路徑 2filename = u'usr/load/cookie.txt' 3 4# 建立 MozillaCookieJar 對象用於操做 cookie 信息 5cookie_obj = cookielib.MozillaCookieJar(filename) 6# 構建 opener 對象 7opener_obj = urllib2.build_opener(urllib2.HTTPCookieProcessor(cookie_obj)) 8 9# 構建用戶名、密碼,並進行 encode 編碼 10params = urllib.urlencode({ 11 'account': '000000', 12 'passwd': '000000' 13}) 14 15# 定義網站登陸地址 16login_url = 'http://wefd.com/login' 17 18# 向服務器發送請求、實現用戶名/密碼登陸 19result = opener_obj.open(url=login_url, data=params) 20 21# 保存 cookie 信息 22cookie_obj.save(ignore_discard=True, ignore_expires=True)
三、提取保存的 cookie 信息並使用 cookie 信息完成登陸微信
1# 建立 MozillaCookieJar 實例對象用於操做 cookie 信息 2cookie_obj = cookielib.MozillaCookieJar() 3 4# 設置文件路徑 5filename = u'usr/load/cookie.txt' 6 7# 加載 cookie 信息到 MozillaCookieJar 對象 8cookie_obj.load(filename, ignore_discard=True, ignore_expires=True) 9 10# 定義網站登陸地址 11login_url = 'http://wefd.com/login' 12 13# 建立 Request 請求 14request = urllib2.Request(login_url) 15 16# 構建 opener 對象,並加入 cookie 信息 17opener_obj = urllib2.build_opener(urllib2.HTTPCookieProcessor(cookie_obj)) 18 19# 執行登陸請求 20response = opener_obj.open(request) 21print response.read()
更多精彩前往微信公衆號【Python 集中營】,專一於 python 技術棧,資料獲取、交流社區、乾貨分享,期待你的加入~cookie