需要登陸,請求資料 session
阿新 • • 發佈:2022-03-17
requests中的session模組思路:
# 1. 登入 --> 等到cookie#
2.帶著cookie 請求到書架的url-->書架上的內容#
注意:
# 兩個操作要連續起來操作
# 我們可以用session進行請求-->session可以連續進行對話,而且我們得到的cookie不會丟失
import requests #第一步:匯入模組
#session : 對話
session = requests.session() #第二步:建立會話
data = { #第四步:從瀏覽器抓包工具中找到data(使用者名稱密碼)
"loginName": "juakn1350",
"password": "abc123456"
}
# 1.登入
url = "https://passport.17k.com/ck/user/login" #第三步:開啟網頁
session.post(url, data=data) #第五步:登入。session:這是我們建立會話的函式, post登入。
#登入成功後下面這兩個操作,是沒問題的
# print(requ.text) #檢視session.po st(url, data=data)是否有響應
# print(requ.cookies) #檢視cookie
# 2.拿書架上的資料
# 剛才的session有cookie,所以這次登入我們直接使用session。(不能直接用get登入,get是從新請求,沒有cookie的資料,
# 我們需要在get前面加session函式: session.get)
requ = session.get("https://user.17k.com/ck/author/shelf?page=1&appKey=2406394919")
#第六步:在抓包工具中找到我們的包,然後把連結放到這個請求上來。
(這是對網頁原始碼沒有的資料,二次請求的資料處理方式:如下圖:)
#第八步(可無):亂碼解決方法
#content中間存的是位元組碼,而text中存的是Beautifulsoup根據猜測的編碼方式將content內容編碼成字串。
#當我們編碼是中文型別(GBK,GB2312等),有時我們直接用text進行解碼有時會發生亂碼,這是我們需要用位元組碼的解碼函式content.decode('utf-8')
result = requ.content.decode('utf-8') #中文亂碼,指定解碼
#第七步:輸出資料
print(result)