認識爬蟲:提取網站 cookie 信息,並使用 cookie 信息實現登陸

爲何要使用 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

image.png

相關文章
相關標籤/搜索