python使用requests模組模擬登陸知乎

2022-02-22 05:08:06 字數 1158 閱讀 4935

text=input("請輸入驗證碼")

def zhihulogin():

#構建乙個session物件,可以儲存cookie(相當於urllib中用的cookiejar)

sess= requests.session()

#請求報頭

#首先獲取登陸頁面,找到需要post的資料,同時記錄當前頁的cookie值

html=sess.get("",headers=headers).text

bs=beautifulsoup(html,"lxml")

#獲取之前get的頁面的_xsrf值

#_xsrf防止csrf攻擊(跨站請求偽造),通常叫做跨域攻擊,是一種利用**對使用者的一種信任機制來做壞事。

#跨域攻擊一般偽裝成**信任的使用者請求(利用cookie),盜取使用者資訊,欺騙web伺服器

#所以**會通過設定乙個隱藏字段存放這個md5字串,這個字串用來校驗使用者cookie和伺服器cookie

_xsrf=bs.find("input",attrs=).get("value")

#驗證碼的鏈結獲取,觀察發現r的值是根據unix時間戳變得

captcha_url="" % (time.time()*1000)

#傳送請求得到資料流

captcha_data=sess.get(captcha_url,headers=headers).content

text=captcha(captcha_data)

data=

resqonse=sess.post("",data=data,headers=headers)

print(resqonse.text)

#獲取個人主頁原始碼

#myhomepageresqonse=sess.get("主頁url",headers=headers)

if __name__=="__main__":

zhihulogin()

Python 使用request傳送http請求

requests.get headers response requests.post login headers headers,data data response requests.post login allow redirects false 注 若不禁止重定向,則當響應是302時,req...

Python使用Request傳送POST請求

http協議規定post請求的資料必須放在訊息主體中,但是並沒有規定編碼方式,因此可以使用多種方式對其進行編碼。伺服器端通過請求頭的中content type欄位來獲知請求的訊息主體以何種方式編碼。具體的編碼方式包括 multipart form data 示例 import requests im...

Python學習之request庫的使用

一 requests庫簡介 requests庫是乙個簡潔的能夠簡單地處理http請求的第三方庫,它的最大優點是程式編寫過程更接近正常url訪問過程。另外,request庫支援非常豐富的鏈結訪問功能,包括國際網域名稱和url獲取 http長連線和連線快取 http會話和cookie保持 瀏覽器使用風格...