天天看點

a标簽送出form表單_Python爬蟲入門-表單送出與模拟登入

前言

今天主要講兩個方面:

  • 利用Request庫進行POST請求表單互動
  • cookie實作模拟登入網站

Requests實作POST請求

今requests可以以多種形式進行post請求,比如form表單形式、json形式等。今天主要以表單形式舉例:

Reqeusts支援以form表單形式發送post請求,隻需要将請求的參數構造成一個字典,然後傳給requests.post()的data參數即可。

示例網站:豆瓣網:https://www.douban.com

a标簽送出form表單_Python爬蟲入門-表單送出與模拟登入

有兩種方式可以查詢送出表單的字段:

  • 通過查詢源代碼的form标簽,input标簽
  • 通過浏覽器的Network項查詢

第一種:

首先我們找到登入的元素,在輸入賬号處選中-->右鍵-->檢查

a标簽送出form表單_Python爬蟲入門-表單送出與模拟登入

然後直接查詢網頁源代碼去找到上面的部分,根據标簽來觀察送出的表單參數,這裡強調一下:

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)
           

運作後發現已登入賬号

a标簽送出form表單_Python爬蟲入門-表單送出與模拟登入

第二種:

通過浏覽器Network項查詢表單參數:

點選右鍵-->檢查-->選擇Network

a标簽送出form表單_Python爬蟲入門-表單送出與模拟登入

然後手動輸入賬号和密碼登入,此時顯示加載了檔案,選擇加載的第一個檔案:

a标簽送出form表單_Python爬蟲入門-表單送出與模拟登入

選中後,檢視Headers字段下的資料,會發現請求的URL

a标簽送出form表單_Python爬蟲入門-表單送出與模拟登入

往下拉,會發現字段參數:

a标簽送出form表單_Python爬蟲入門-表單送出與模拟登入

然後再按照上面的代碼寫一下就可以了。

Cookie模拟登入

Cookie,有時也用其複數形式 Cookies,指某些網站為了辨識使用者身份、進行 session 跟蹤而儲存在使用者本地終端上的資料(通常經過加密)。

我們可以通過手動登入後,檢視浏覽器的Network選項找到cookie值,記住cookie值不要透露出去。

操作步驟:

右鍵-->檢查-->選擇Network-->手動登入-->在加載檔案中找到本網址的Name

a标簽送出form表單_Python爬蟲入門-表單送出與模拟登入

得到cookie和URL之後,把cookie添加到headers中,運作,代碼如下:

import  requestsurl="https://www.douban.com/"header={"Cookie":'XXXXXXXXXXXXXXXX'} #cookie值不要洩露html=requests.get(url,headers=header)print(html.text)
           
a标簽送出form表單_Python爬蟲入門-表單送出與模拟登入

希望對新人有所幫助!

繼續閱讀