鍍金池/ 問答/Python/ python 模擬登陸,如何解決authorization token.

python 模擬登陸,如何解決authorization token.

我在嘗試?yán)胮ython requests模擬模塊登陸nike snkrs網(wǎng)站,但是按常規(guī)的模擬https的請(qǐng)求發(fā)送賬號(hào)信息至Nike服務(wù)器,返回403錯(cuò)誤,提示缺少authorization token,但是通過(guò)抓包并沒有發(fā)現(xiàn)請(qǐng)求頭部中帶有token信息,因?yàn)閷?duì)這方面了解很少,不知道token信息是什么時(shí)候添加至頭部中。在不斷嘗試后,我推測(cè)網(wǎng)站采用了oauth2.0密碼認(rèn)證方法,
圖片描述同時(shí)authorization token采用amazon s3 的用戶驗(yàn)證:圖片描述

現(xiàn)在的問題是:標(biāo)頭中的信息不知道從何獲取,以及具體的簽名算法如何實(shí)現(xiàn),也不了解token信息在什么時(shí)候被添加進(jìn)了頭部,普通抓包無(wú)法獲取。請(qǐng)各位能夠指明一個(gè)方向,現(xiàn)在完全不知道從哪里入手,難道python無(wú)法實(shí)現(xiàn)nike snkrs網(wǎng)站的模擬登陸了么,請(qǐng)大家?guī)椭乙幌?。以下是一些我在嘗試破解token值時(shí)的一些返回信息。圖片描述

圖片描述

圖片描述

回答
編輯回答
放開她

用XPATH定位 來(lái)獲取動(dòng)態(tài)序列號(hào)

如何

從content當(dāng)中獲取驗(yàn)證數(shù)據(jù) 這個(gè)是CSDN登錄驗(yàn)證

html = etree.HTML(content)
lt = html.xpath('//input[@name="lt"]')[0].attrib.get("value")
execution = html.xpath('//input[@name="execution"]')[0].attrib.get("value")
_eventId = html.xpath('//input[@name="_eventId"]')[0].attrib.get("value")

構(gòu)建請(qǐng)求數(shù)據(jù)

2018年5月17日 22:17
編輯回答
無(wú)標(biāo)題

網(wǎng)站反爬比較好,建議用selenium模擬點(diǎn)擊登陸
requests登陸估計(jì)得請(qǐng)求多次,可能需要解析獲取的js中部分加密算法,并用python實(shí)現(xiàn)(傳遞在data,或者添加在headers里)不如直接selenium點(diǎn)擊來(lái)的方便。
想無(wú)界面的話可以用selenium + phantomjs
當(dāng)然selenium的效率比requests低的多,不過(guò)更方便一些

2017年3月16日 03:32