前言
發送post的請求參考例子很簡單,實際遇到的情況卻是很複雜的,首先第一個post請求肯定是登錄了,但登錄是最難處理的。登錄問題解決了,後面都簡單了。
1.學習一個新的模塊,其實不用去百度什麼的,直接用help函數就能查看相關注釋和案例內容。
>>import requests
>>help(requests)
2.查看python發送get和post請求的案例
>>> import requests
>>> r = requests.get(&39;)
>>> r.status_code
200
>>> &39; in r.content
True
... or POST:
>>> payload = dict(key1=&39;, key2=&39;)
>>> r = requests.post(&39;, data=payload)
>>> print(r.text)
{
...
&34;: {
&34;: &34;,
&34;: &34;
},
...
}
1.用上面給的案例,做個簡單修改,發個post請求
2. payload參數是字典類型,傳到如下圖的form裡
1.post的body是json類型,也可以用json參數傳入。
2.先導入json模塊,用dumps方法轉化成json格式。
3. 返回結果,傳到data裡
1.以禪道登錄為例,模擬登陸,這裡需添加請求頭headers,可以用fiddler抓包
2.將請求頭寫成字典格式
headers = {&34;: &34;,
&34;: &34;,
&34;: &34;,
&34;: &34;,
&34;: &34;,
&34;: &34;,
&34;: &34;, 34;Connection&34;keep-alive& coding:utf-8
禪道host地址
host = &34;
def login(s,username,psw):
url = host+&34;
h = {
&34;: &34;,
&34;: &34;,
&34;: &34;,
&34;: &34;,
&34;: host+&34;,
34;Cookie& 頭部沒登錄前不用傳cookie,因為這裡cookie就是保持登錄的
&34;: &34;,
&34;: &34;,
}
body1 = {&34;: username,
&34;: psw,
&34;: &34;,
&34;: host+&34;
}
return r1.content 34;utf-8& python3
def is_login_sucess(res):
if &34; in res:
return False
elif &34; in res:
return True
else:
return False
if __name__ == &34;:
s = requests.session()
a = login(s, &34;, &34;)
result = is_login_sucess(a)
print(&34;%result)