电竞比分网-中国电竞赛事及体育赛事平台

分享

Python爬蟲(chóng)入門(mén)-表單提交與模擬登錄

 LibraryPKU 2019-12-18

前言

今天主要講兩個(gè)方面:

  • 利用Request庫(kù)進(jìn)行POST請(qǐng)求表單交互

  • cookie實(shí)現(xiàn)模擬登錄網(wǎng)站

Requests實(shí)現(xiàn)POST請(qǐng)求

今requests可以以多種形式進(jìn)行post請(qǐng)求,比如form表單形式、json形式等。今天主要以表單形式舉例:

Reqeusts支持以form表單形式發(fā)送post請(qǐng)求,只需要將請(qǐng)求的參數(shù)構(gòu)造成一個(gè)字典,然后傳給requests.post()的data參數(shù)即可。

示例網(wǎng)站:豆瓣網(wǎng):https://www.douban.com

有兩種方式可以查詢(xún)提交表單的字段:

  • 通過(guò)查詢(xún)?cè)创a的form標(biāo)簽,input標(biāo)簽

  • 通過(guò)瀏覽器的Network項(xiàng)查詢(xún)

第一種:

首先我們找到登錄的元素,在輸入賬號(hào)處選中–>右鍵–>檢查

然后直接查詢(xún)網(wǎng)頁(yè)源代碼去找到上面的部分,根據(jù)標(biāo)簽來(lái)觀(guān)察提交的表單參數(shù),這里強(qiáng)調(diào)一下:

form標(biāo)簽和form標(biāo)簽下的input標(biāo)簽非常重要,form標(biāo)簽中的action屬性代表請(qǐng)求的URL,input標(biāo)簽下的name屬性代表提交參數(shù)的KEY。

代碼參考如下:

import  requests

url="https://www.douban.com/accounts/login"     #action屬性params={
   "source":"index_nav",               #input標(biāo)簽下的name   "form_email":"xxxxxx",              #input標(biāo)簽下的name   "form_password":"xxxxxx"              #input標(biāo)簽下的name}
html=requests.post(url,data=params)
print(html.text)

運(yùn)行后發(fā)現(xiàn)已登錄賬號(hào)

第二種:

通過(guò)瀏覽器Network項(xiàng)查詢(xún)表單參數(shù):

點(diǎn)擊右鍵–>檢查–>選擇Network

然后手動(dòng)輸入賬號(hào)和密碼登錄,此時(shí)顯示加載了文件,選擇加載的第一個(gè)文件:

選中后,查看Headers字段下的數(shù)據(jù),會(huì)發(fā)現(xiàn)請(qǐng)求的URL

往下拉,會(huì)發(fā)現(xiàn)字段參數(shù):

然后再按照上面的代碼寫(xiě)一下就可以了。

Cookie模擬登錄

Cookie,有時(shí)也用其復(fù)數(shù)形式 Cookies,指某些網(wǎng)站為了辨別用戶(hù)身份、進(jìn)行 session 跟蹤而儲(chǔ)存在用戶(hù)本地終端上的數(shù)據(jù)(通常經(jīng)過(guò)加密)。

我們可以通過(guò)手動(dòng)登錄后,查看瀏覽器的Network選項(xiàng)找到cookie值,記住cookie值不要透露出去。

操作步驟:

右鍵–>檢查–>選擇Network–>手動(dòng)登錄–>在加載文件中找到本網(wǎng)址的Name

得到cookie和URL之后,把cookie添加到headers中,運(yùn)行,代碼如下:

import  requests

url="https://www.douban.com/"header={"Cookie":'XXXXXXXXXXXXXXXX'} #cookie值不要泄露
html=requests.get(url,headers=header)
print(html.text)

希望對(duì)新人有所幫助!

本文參考了網(wǎng)上信息和《從零開(kāi)始學(xué)習(xí)Python網(wǎng)絡(luò)爬蟲(chóng)》

    本站是提供個(gè)人知識(shí)管理的網(wǎng)絡(luò)存儲(chǔ)空間,所有內(nèi)容均由用戶(hù)發(fā)布,不代表本站觀(guān)點(diǎn)。請(qǐng)注意甄別內(nèi)容中的聯(lián)系方式、誘導(dǎo)購(gòu)買(mǎi)等信息,謹(jǐn)防詐騙。如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,請(qǐng)點(diǎn)擊一鍵舉報(bào)。
    轉(zhuǎn)藏 分享 獻(xiàn)花(0

    0條評(píng)論

    發(fā)表

    請(qǐng)遵守用戶(hù) 評(píng)論公約

    類(lèi)似文章 更多