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库实现的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 怎样查看cudnn版本_ubuntu16
- 下一篇: python如何判断列表是否为空_Pyt