爬蟲(9) 使用處理器Handler

2021-08-21 04:46:01 字數 1009 閱讀 3175

response = urllib.request.urlopen(req)
urlopen缺點:不能新增ip池(不能使用**ip);不能使用cookie

所以要重寫urlopen,自定義處理器httpshandler:

importurllib.request

# 處理器(處理https,也能處理http協議)

# 開啟器

opener = urllib.request.build_opener(handler)

headers = {

url = ''

# 新增請求

req = urllib.request.request(url,

headers=headers)

"""通過開啟器開啟網頁方式

open的引數:fullurl, data=none, timeout

"""# response = opener.open(req)

# print(response.read().decode('utf-8'))

"""以下是安裝全域性開啟器來開啟網頁方式

return opener.open(url, data, timeout):

用response = urllib.request.urlopen(req)開啟網頁,本質還是response = opener.open(req)

"""# 安裝全域性開啟器

urllib.request.install_opener(opener)

# 開啟網頁

response = urllib.request.urlopen(req)

print(response.read().decode('utf-8'))

Handler處理器的使用

importurllib.request importurllib.parse request封裝 對url的高階定製opener封裝 對請求過程的高階定製urllib.request.urlopen opener封裝需要依賴於乙個handler物件handle是乙個類,提供httphandle h...

爬蟲 urllib handler處理器

為什麼要學習handler?如果定製更高階的請求頭,隨著業務邏輯的複雜請求物件的定製已經滿足不了我們的需求 動態cookie和 不能使用請求物件的定製 handler的基本使用 import urllib.request url headers request urllib.request.requ...

Handler處理器 自定義Opener

在請求裡面,還有兩個高階功能,乙個是 乙個是cookie,學習handler和opener使用的步驟 見 concent 報錯 unicodeencodeerror gbk codec can t encode character xbb in position 30892 illegal mult...