日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程语言 > python >内容正文

python

python修改静态html_Python 静态页面爬虫---urllib3库实现

發布時間:2024/7/19 python 34 豆豆
生活随笔 收集整理的這篇文章主要介紹了 python修改静态html_Python 静态页面爬虫---urllib3库实现 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

1、生產請求

urllib3庫是通過PoolManager實例來生產請求的,由該實例處理與線程池的鏈接機線程安全的所有細節

urllib3.request函數創建一個請求

語法:

http =urllib3.PoolManager()

rq= http.request('method','url',headers={默認為None},fields={默認為None},**urlopen_kw)

參數解釋:

參數名稱

說明

method

表示請求的類型。GET,POST等,必須寫

url

表示字符串形式的網址

fields

表示請求類型所帶的參數

headers

表示請求頭所帶的參數

**urlopen_kw

接收dict和python中的數據類型的數據,依據具體需求及請求的類型可添加的參數,通常參數賦值為字典類型或者具體數據

2、請求頭處理

request函數中,參數header通常定義為一個字典類型來實現

#生產PoolManager實例

http =urllib3.PoolManager()#發送request請求

rq = http.request("GET",'https://www.baidu.com/')#發送帶有header請求頭的request請求

hd = {'User-Agent': 'Mozilla/5.0 (Windows NT 6.1; WOW64) Chrome/78.0.3904.108'} #定義header參數,常用的是dict類型

rq = http.request("GET",'https://www.baidu.com/',headers=hd)

3、設置timeout

timeout參數主要是為了防止因為網絡不穩定、服務器不穩定等問題造成鏈接不穩定時丟包

timeout設置有兩種方法:

url = 'https://www.baidu.com/'

#方法1: 在PoolManager實例中設置timeout參數

http = urllib3.PoolManager(timeout = 4)

http1= urllib3.PoolManager(timeout=urllib3.Timeout(connect=1.0,read=3.0)) #分別設置鏈接與讀取的timeout參數#方法2: 直接在url參數后面添加統一的timeout參數

rq = http1.request('GET',url,timeout=3)

rq1= http1.request('GET',url,timeout=urllib3.Timeout(connect=1.0,read=3.0)) #分別設置鏈接與讀取的timeout參數

注意:以request函數中的timeout參數,會覆蓋PoolManager實例的timeout參數

4、請求重試設置(retries:重試,redirect:重定性)

retries:默認值為3,設置時參數必須為整數

retries:如果沒有設置redirect時,表示同時設置重試和重定向的次數,

如果設置了 redirect時,retries表示設置重試次數,redirect表示重定向次數

url = 'https://www.baidu.com/'

#方法1: 在PoolManager實例中設置retries參數

http = urllib3.PoolManager(retries = 4)

http1= urllib3.PoolManager(timeout=urllib3.Timeout(connect=1.0,read=3.0)) #分別設置鏈接與讀取的timeout參數#方法2: 直接在url參數后面添加統一的retries參數

rq = http1.request('GET',url,retries=3) #請求重試和重定向都為3次

rq1 = http1.request('GET',url,retries=3,redirect=4) #請求重試3次,重定向4次

rq2 = http1.request('GET',url,retries=False) #同時關閉請求重試與重定向

rq3 = http1.request('GET',url,redirect=False) #僅關閉重定向

5、生產一個完整http請求

#創建PoolManager實例

Http =urllib3.PoolManager()#請求方式

method = "GET"

#請求目標URL地址

url = 'https://www.baidu.com/'

#請求頭信息

head = {'User-Agent':'Mozilla/5.0 (Windows NT 6.1; WOW64) Chrome/78.0.3904.108'}#設置timeout,鏈接超時1秒,讀取超時3秒

timeout = urllib3.Timeout(connect=1.0,read=3.0)#設置重試次數

retries = 4

#設置重定向次數

redirect = 8

#請求

requests = Http.request(method,url,headers=head,timeout=timeout,retries=retries,redirect=redirect)print(requests.status) #requests.status返回狀態碼

print(requests.data.decode('utf8')) #返回獲取的內容

總結

以上是生活随笔為你收集整理的python修改静态html_Python 静态页面爬虫---urllib3库实现的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。