1. 程式人生 > 其它 >需要登陸,請求資料 session

需要登陸,請求資料 session

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)