python爬蟲學習筆記(3)

2021-09-27 12:05:43 字數 2244 閱讀 5756

一般用於傳送請求和接收響應

#url為必填引數,後兩個可不填

urllib.request.urlopen(url,data,timeout)

urlopen方法返回乙個httpresponse物件

urllib.request.urlopen()此方法無法指定請求頭部,而有時必須指定請求頭部以避免被瀏覽器識別為爬蟲。

request物件如下:

url:指定目標**的url

data:傳送post資料時提交的榜單,預設為none

headers:傳送請求時附加的頭部,預設為{}

origin_req_host:請求方的host名稱或者ip位址,預設為none

unverfiable:請求方的請求無法驗證,預設為false

method:指定請求方法,預設為none

#初始化乙個request物件

url=

''#指定頭部資訊,可以通過chorme自帶的進行檢視

headers =

req=urllib.request.request(url=url,headers=headers,method=

'get'

)

import urllib,request

#為了有效地管理session,採取的包

#建立名為 cookie的 http.cookiejar.cookiejar 物件

)#以 cookiejar物件為引數,建立 urllib.request.httpcookieprocessor物件,

#該物件負責呼叫 cookiejar 來管理 cookie。

#呼叫 urllib.request.build_opener()函式建立 openerdirector物件。

opener=urllib.request.build_opener(cookie_hander)

#使用 openerdirector 物件來傳送請求

'='+ item.value)

http 是一種「請求-響應」式協議:客戶端向伺服器傳送請求,伺服器向客戶揣生成響應資料。這就涉及乙個問題,伺服器如何辨別兩次請求的客戶端是同乙個客戶端呢?答案是 session id。當客戶端第一次向伺服器傳送請求時,伺服器會為該客戶端分配乙個 session id 作為其標識,伺服器在生成響應資料時,也會把該 session id 作為響應資料傳送給客戶端。當客戶端第二次向伺服器傳送請求時,如果客戶端把自己的 session id 也傳送給伺服器,且伺服器端的 session id 還未過期,伺服器就知道該客戶端與前一次傳送請求的客戶端是同乙個。

如果直接urlopen傳送未管理session,那麼伺服器無法識別是否為乙個客戶端發出的。為有效管理cookie,引入http.cookiejar包

此外,程式還需要使用 openerdirector 物件來傳送請求。為了使用 urllib.request 模組通過 cookie 來管理 session,可按如下步驟進行操作:

建立 http.cookiejar.cookiejar 物件或其子類的物件。

以 cookiejar 物件為引數,建立 urllib.request.httpcookieprocessor 物件,該物件負責呼叫 cookiejar 來管理 cookie。

以 httpcookieprocessor 物件為引數,呼叫 urllib.request.build_opener() 函式建立 openerdirector 物件。

使用 openerdirector 物件來傳送請求,該物件將會通過 httpcookieprocessor 呼叫 cookiejar 來管理 cookie

python3爬蟲學習筆記

爬蟲爬取京東某手機頁面 beautifulsoup 原文記錄內容太多現進行摘錄和分類 pip3 install jieba kou ubuntu python cat clahamlet.py usr bin env python coding utf 8 e10.1calhamlet.py def...

Python3爬蟲學習筆記1 0 什麼是爬蟲?

我們來思考乙個問題,什麼是爬蟲?說一下我對爬蟲的理解。理解爬蟲之前,我們思考一下網路是一種什麼樣式的存在。爬蟲就是游離在這些網路之間的乙個自動化程式,並且能夠完成對網路地瀏覽,自動採集網路中所有訪問到的內容 從而在網路中得到你需要的資訊。網路蜘蛛 爬蟲 維基百科 順便說一句 google是世界上最大...

Python3爬蟲程式設計學習筆記(二)爬蟲原理

http是乙個簡單的請求 響應協議,它通常執行在tcp之上。它指定了客戶端可能傳送給伺服器什麼樣的訊息以及得到什麼樣的響應。請求和響應訊息的頭以ascii碼形式給出 而訊息內容則具有乙個類似mime的格式。這個簡單模型是早期web成功的有功之臣,因為它使得開發和部署是那麼的直截了當。引用csdn博主...