Request庫 高級用法


基於Request庫進行搭建

 

Request:

  request庫是用來發送HTTP請求,接收HTTP響應的一個python庫

  request庫經常被用來,爬取,網站信息,用它來發起HTTP請求到網站,從HTTP響應消息中提取信息

  request不是python的標准庫,屬於第三方庫,需要進行安裝:pip install request

 

用法:

Cookie處理

cookie處理方式
手動處理cookie
1.headers添加cookie鍵值對
2.RequestsCookieJar
3.Session類自動封裝cookie
自動處理cookie:Session 自動封裝

 

會話維持與模擬登陸

HTTP無狀態:
使用requests模塊get() 和 post()的請求的時候 相當於每次獨立的打開一個瀏覽器去請求一個頁面 這兩次get 和post 它之間都不會產生聯系 所以需要會話維持

會話維持:Session對象
from request import Session
session = Session()
res = session.get('https://baidu.com')

 

文件上傳

request模塊實現請求, post請求 -->向服務器提交數據
import requests
files ={
'file': open('dasdsa.html', 'rb')
}
res = requests.get(url=url, files=files)

 

SSL證書驗證

 HTTP與HTTPS: HTTPS是HTTP的安全版本, HTTPS在HTTP的基礎上多了SSL驗證
SSL證書驗證
1. requests 提供了證書驗證功能, 發起HTTP請求時, 模塊會檢查SSL證書, 但檢查的行為可以用 verify參數來控制。
verify = False # 不檢查SSL證書
verify = True # 檢查SSL證書

2. 異常
如果使用requests模塊的SSL驗證, 驗證不通過會拋出異常, 此時可以將verify參數設置為Fales
不拋異常, 但會出現警告


import requests

requests = requests.get('https://www.12306.cn', verify = False)
print(response.status)

# 異常: SSLError
requests.exceptions.SSLError
# avoiding warning
requests.packages.urllib3.disable_warnings()
# site:
https://www.tutumanhua.com

 

代理設置

代理: 代理即代理ip
代理ip是指在請求的過程中使用非本機ip進行請求, 避免大數據量頻繁請求過程中出現ip封禁,
使用 proxies 封裝 ip
反爬機制:
原有請求過程:爬蟲 -- 服務器 -- 爬蟲
使用代理過程: 爬蟲-- 代理 -- 服務器 -- 代理 --爬蟲
1.Robots協議: 不遵守, 配置文件中進行設置
2. UA檢查: UA偽裝
3.IP封禁: 代理IP

代理ip 分類:
1. 透明代理ip: 請求時, 服務器知道請求的真實ip, 知道使用了代理
2. 匿名代理ip: 請求時, 服務器知道使用了代理,但不知道請求的真實ip
3. 高匿名代理:請求時, 服務器不知道請求使用了代理, 也不知道請求的真實ip

 

超時設置

超時設置
由於網絡情況不同,服務器配置的差異,以及處理並發的能力不同, 有時會出現某一個請求,他的響應時間非常的長,甚至都沒有辦法獲取響應,而拋出異常了,哪requests模塊發送請求就可以設置一個超時時間,在指定的時間內未獲得響應就拋出異常。

注意事項:
1.如何選用超時: 確定數據量的大小, timeout有可能丟失數據, 在指定時間為獲取響應 跳過 丟棄請求, 如果丟失的量不會對整個數據量產生巨大影響,那么可以采用。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM