python爬蟲筆記(1-1)requests模塊:請求數據獲取響應內容


 
requests 繼承了urllib2的所有特性,比urllib簡潔高效
requests所有功能都能通過"requests/api.py"中的方法訪問
 
1、安裝:
pip install requests
 
2、get請求:
封裝鏈接中的參數,請求時用params參數進行傳遞
url = "http://www.baidu.com"
resp = requests.get(url,params=,headers=)
 
3、post請求:
發送的數據必須放在字典中,通過data參數進行傳遞
url = "http://www.baidu.com"
resp = requests.post(url,data=,headers=)
 
4、查看響應內容:
print (resp.text ) # resp.text 返回的是Unicode格式的數據
print(resp.json()) # res.json() 返回的是json格式的數據
print(resp.content) # resp.content返回的字節類型數據
print (resp.url) # 查看完整url地址
print (resp.encoding) # 查看響應頭部字符編碼
print(resp.status_code) # 查看響應碼
print(resp.cookies) # 查看返回的cookies
print(resp.r.elapsed) #響應速度,從發送請求到響應到達所需要的時間
 
5、Cookies
import requests
url = "http://www.baidu.com"
resp = requests.get(url)
cookiejar = resp.cookies # 返回cookies對象
cookiedic = requests.utils.dict_from_cookiejar(cookiejar) # 將cookies轉為字典
 
6、Sission
說明
1、發送請求前先創建一個session會話,將請求到的cookies存入session中
2、程序的請求要一直使用session.get/post,以保證cookies在程序中的傳遞
3、程序的請求如果使用requests.get/post需要在參數中增加headers{"cookie:":"****"},否則請求會報錯,因為requests.get/post每次執行都會重新開啟一個新的請求,丟失已獲取的cookies
例子:登錄17小說網拿到書架數據
import requests
session = requests.session() # 創建會話(session),將cookie存入session中
data = {
"loginName": "1***7",
"password": "1***5"
}
url = "https://passport.17k.com/ck/user/login"
resp1 = session.post(url,data=data) # 登錄,獲取cookies
# 拿着獲取到的cookies,請求到書架上的數據
resp2 = session.get("https://user.17k.com/ck/author/shelf?page=1&appKey=2406394919")
print(resp2.json())
 
7、防盜鏈處理
防盜鏈,本質上是溯源,即本次請求的上一次請求,請求時將referer地址加上即可
header = {
"User-Agent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/91.0.4472.106 Safari/537.36",
"Referer":"https://www.pearvideo.com/video_1734919" # 防盜鏈:溯源,確認當前請求的上一級
}
 


免責聲明!

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



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