python爬蟲之使用靜態Cookie模擬使用者登入

2021-10-04 23:47:37 字數 2240 閱讀 5962

首先介紹下cookie內容,什麼是cookie。cookie的引文原意是「點心」,它是在客戶端訪問web伺服器時,伺服器在客戶端硬c盤上存放的資訊,好像是伺服器傳送給客戶的「點心」。伺服器可以根據cookie來跟蹤客戶狀態,這對於需c要區別客戶的場合(如電子商務)特別有用。當客戶端首次請求訪問伺服器時,伺服器先在客戶端存放包含該客戶的相關資訊的cookie,以後客戶端每次請求訪問伺服器時,都會在http請求資料中包含cookie,伺服器解析http請求中的cookie,就能由此獲得關於客戶的相關資訊。下面是cookie產生和使用過程

客戶端傳送乙個http請求到伺服器端 伺服器端傳送乙個http響應到客戶端,其中包含set->cookie頭部 客戶端傳送乙個http請求到伺服器端,其中包含cookie頭部 伺服器端傳送乙個http響應到客戶端

set-cookie: name=value;expires/max-age=date;path=path; domain=domain_name; secure
value:cookie 的值

expires:cookie 的過期時間

path:cookic 作用的路徑

domain:cookie 作用的網域名稱

secure:是否只在 https 協議下起作用

在我們瀏覽器中,我們可以通過開發者模式檢視cookie,比如我現在檢視csdn上儲存的cookie

補全了cookie的內容後,現在開始正式內容。下面將以訪問人人網的為例,如果我們不使用cookie時,通過會怎麼樣,我將獲取的內容儲存到本地的index.html檔案中,執行下面的**:

url =

""headers =

con = request.request(url,headers=headers)

re = request.urlopen(con)

with

open

("index.html"

,"w"

, encoding=

"utf-8"

)as f:

count = f.write(re.read(

).decode(

"utf-8"))

print

(count)

獲取的內容爛七八糟,但是能夠發現這是人人網的登入或者註冊介面,這就是因為在訪問**時,伺服器沒有查詢到cookie引數,預設為是非法訪問,然後直接跳轉到登入介面,讓使用者登入才能進入,如果我們使用瀏覽器開啟,也是下面的現象

下面將在**中使用我使用瀏覽器登入人人網後,看到到的cookie進行登入。

from urllib import request

url =

""headers =

con = request.request(url,headers=headers)

re = request.urlopen(con)

with

open

("index.html"

,"w"

, encoding=

"utf-8"

)as f:

count = f.write(re.read(

).decode(

"utf-8"))

print

(count)

再次開啟index.html檔案,檢視效果,發現能夠正常獲取到**的資訊

小結

首先我們需要了解什麼是cookie,以及cookie的重要性

其次,需要自己動手實現上面的樣例,有的**會有很強的反爬機制,使用靜態cookie是不行的,那麼就需要利用到我之前介紹的cookiejar庫使用

python靜態爬蟲概念

1.什麼是爬蟲 網路爬蟲 又被稱為網頁蜘蛛,網路機械人,在foaf社群中間,更經常的稱為網頁追逐者 是一種按照一定的規則,自動的抓取全球資訊網資訊的程式或者指令碼。另外一些不常使用的名字還有螞蟻,自動索引,模擬程式或者蠕蟲。其實通俗的講就是通過程式去獲取web頁面上自己想要的資料,也就是自動抓取資料...

Python爬蟲之PyQuery使用(六)

pyquery能夠通過選擇器精確定位 dom 樹中的目標並進行操作。pyquery相當於jquery的python實現,可以用於解析html網頁等。它的語法與jquery幾乎完全相同,對於使用過jquery的人來說很熟悉,也很好上手。有 4 種方法可以進行初始化 可以通過傳入 字串 lxml 檔案 ...

python 爬蟲筆記 簡單靜態

不太懂網頁上的專業術語。1.首先檢視頁面源 檢視要爬取的資料是什麼樣的,在哪個標籤下,能不能用xpath或者bs4取出來。2.f12此頁面,重新整理檢視頁面響應時,能看到的資訊。主要是訊息頭里的請求 請求方法,host,user agent,cookie以及引數裡的資料。及時檢視響應,看出現的頁面是...