前言
今天主要講兩個方面:
- 利用Request庫進行POST請求表單互動
- cookie實作模拟登入網站
Requests實作POST請求
今requests可以以多種形式進行post請求,比如form表單形式、json形式等。今天主要以表單形式舉例:
Reqeusts支援以form表單形式發送post請求,隻需要将請求的參數構造成一個字典,然後傳給requests.post()的data參數即可。
示例網站:豆瓣網:https://www.douban.com

有兩種方式可以查詢送出表單的字段:
- 通過查詢源代碼的form标簽,input标簽
- 通過浏覽器的Network項查詢
第一種:
首先我們找到登入的元素,在輸入賬号處選中-->右鍵-->檢查
然後直接查詢網頁源代碼去找到上面的部分,根據标簽來觀察送出的表單參數,這裡強調一下:
form标簽和form标簽下的input标簽非常重要,form标簽中的action屬性代表請求的URL,input标簽下的name屬性代表送出參數的KEY。
代碼參考如下:
import requestsurl="https://www.douban.com/accounts/login" #action屬性params={ "source":"index_nav", #input标簽下的name "form_email":"xxxxxx", #input标簽下的name "form_password":"xxxxxx" #input标簽下的name}html=requests.post(url,data=params)print(html.text)
運作後發現已登入賬号
第二種:
通過浏覽器Network項查詢表單參數:
點選右鍵-->檢查-->選擇Network
然後手動輸入賬号和密碼登入,此時顯示加載了檔案,選擇加載的第一個檔案:
選中後,檢視Headers字段下的資料,會發現請求的URL
往下拉,會發現字段參數:
然後再按照上面的代碼寫一下就可以了。
Cookie模拟登入
Cookie,有時也用其複數形式 Cookies,指某些網站為了辨識使用者身份、進行 session 跟蹤而儲存在使用者本地終端上的資料(通常經過加密)。
我們可以通過手動登入後,檢視浏覽器的Network選項找到cookie值,記住cookie值不要透露出去。
操作步驟:
右鍵-->檢查-->選擇Network-->手動登入-->在加載檔案中找到本網址的Name
得到cookie和URL之後,把cookie添加到headers中,運作,代碼如下:
import requestsurl="https://www.douban.com/"header={"Cookie":'XXXXXXXXXXXXXXXX'} #cookie值不要洩露html=requests.get(url,headers=header)print(html.text)
希望對新人有所幫助!