1. 程式人生 > >python 爬蟲 cookies設定,獲取登陸後介面。

python 爬蟲 cookies設定,獲取登陸後介面。

前言

Cookie

Cookie 是指某些網站伺服器為了辨別使用者身份和進行Session跟蹤,而儲存在使用者瀏覽器上的文字檔案,Cookie可以保持登入資訊到使用者下次與伺服器的會話。

Cookie原理

HTTP是無狀態的面向連線的協議, 為了保持連線狀態, 引入了Cookie機制 Cookie是http訊息頭中的一種屬性,包括:

Cookie名字(Name)

Cookie的值(Value)

Cookie的過期時間(Expires/Max-Age)

Cookie作用路徑(Path)

Cookie所在域名(Domain),

使用Cookie進行安全連線(Secure)。

前兩個引數是Cookie應用的必要條件,另外,還包括Cookie大小(Size,不同瀏覽器對Cookie個數及大小限制是有差異的)。

Cookie由變數名和值組成,根據 Netscape公司的規定,Cookie格式如下:

Set-Cookie: NAME=VALUE;Expires=DATE;Path=PATH;Domain=DOMAIN_NAME;SECURE

Cookie應用

Cookies在爬蟲方面最典型的應用是判定註冊使用者是否已經登入網站,使用者可能會得到提示,是否在下一次進入此網站時保留使用者資訊以便簡化登入手續。

使用Cookies獲取qq空間登陸後介面

在網頁登入qq空間,進入說說介面,F12或檢查,重新整理一下,找到網頁主題檔案,複製cookies

# -*- coding:UTF-8 -*-
import urllib2
headers = {
    "Host":"user.qzone.qq.com",
    "Connection":"keep-alive",
    "Upgrade-Insecure-Requests":"1",
    "user-agent":" Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/65.0.3325.181 Safari/537.36",
    "accept":"text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,image/apng,*/*;q=0.8",
    "Accept-Language":"zh-CN,zh;q=0.9",
    "Cookie": "****************************"

}

request = urllib2.Request("https://user.qzone.qq.com/2844194604", headers = headers)
response = urllib2.urlopen(request)
print response.read()

結果:一段巨大的html

模擬登入要注意幾點:

  1. 登入一般都會先有一個HTTP GET,用於拉取一些資訊及獲得Cookie,然後再HTTP POST登入。
  2. HTTP POST登入的連結有可能是動態的,從GET返回的資訊中獲取。
  3. password 有些是明文傳送,有些是加密後傳送。有些網站甚至採用動態加密的,同時包括了很多其他資料的加密資訊,只能通過檢視JS原始碼獲得加密演算法,再去破解加密,非常困難。
  4. 大多數網站的登入整體流程是類似的,可能有些細節不一樣,所以不能保證其他網站登入成功。

有問題留言,我盡力幫助

更多機會與學習資料加入下方QQ群