淺析Python3爬蟲(chóng)登錄模擬
使用Python爬蟲(chóng)登錄系統(tǒng)之后,能夠?qū)崿F(xiàn)的操作就多了很多,下面大致介紹下如何使用Python模擬登錄。
我們都知道,在前端的加密驗(yàn)證,只要把將加密環(huán)境還原出來(lái),便能夠很輕易地登錄。
首先分析登錄的步驟,通過(guò)審查元素得知
<input type="button" id="login" name="login" class="login" onclick="Logon();" value="登錄">
點(diǎn)擊按鈕觸發(fā)Logon()函數(shù),然后查找Logon()函數(shù)定義
function Logon() { }
函數(shù)定義內(nèi)容各有不同,一般里面包含一些加密的操作,一般是使用寫(xiě)好的js加密。我們所需要做的便是重復(fù)這些步驟,加密數(shù)據(jù)。
對(duì)于加密,有三種方法:
- 如果加密方法是base64之類(lèi)的,可以直接用Python3的base64庫(kù)加密;
- 手動(dòng)模仿;
- 直接調(diào)用js加密,需要先下載PyExecJS,有的電腦需要先安裝js的運(yùn)行環(huán)境,比如Node.js。使用方法如下:
newusername = execjs.compile(content).call('base64encode', username)
其中content是js內(nèi)容,base64encode是方法,username是參數(shù),newusername是加密后的數(shù)據(jù)。
對(duì)于驗(yàn)證碼的問(wèn)題,先介紹下一般的圖片驗(yàn)證碼,可以請(qǐng)求獲取驗(yàn)證碼的地址,session之類(lèi)的數(shù)據(jù)自己搞定,一般便可以請(qǐng)求成功,可以存到本地手動(dòng)輸入,也可以使用識(shí)別的第三方模塊,但這個(gè)識(shí)別效果并不是很好。
然后,便是查看session,cookie。
接下來(lái)的操作就是構(gòu)造請(qǐng)求頭headers,這個(gè)可以自行去控制臺(tái)查看或者使用wireshark, fiddler之類(lèi)的抓包軟件查看。
最后便可以請(qǐng)求數(shù)據(jù):
使用
s = requests.Session() s.headers.update(headers) r = s.post(url, data = params)
或者:
r = requests.get(url, headers = headers, data = params)
headers是你構(gòu)造的請(qǐng)求頭,url是你請(qǐng)求的網(wǎng)站,params是加密的數(shù)據(jù)。
相關(guān)文章
Python入門(mén)教程(七)Python數(shù)字類(lèi)型
這篇文章主要介紹了Python入門(mén)教程(七)Python數(shù)字類(lèi)型,Python是一門(mén)非常強(qiáng)大好用的語(yǔ)言,也有著易上手的特性,本文為入門(mén)教程,需要的朋友可以參考下2023-04-04Python之time模塊的時(shí)間戳,時(shí)間字符串格式化與轉(zhuǎn)換方法(13位時(shí)間戳)
今天小編就為大家分享一篇Python之time模塊的時(shí)間戳,時(shí)間字符串格式化與轉(zhuǎn)換方法(13位時(shí)間戳),具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧2019-08-08Python使用tkinter實(shí)現(xiàn)搖骰子小游戲功能的代碼
這篇文章主要介紹了Python使用tkinter實(shí)現(xiàn)的搖骰子小游戲功能,本文通過(guò)實(shí)例代碼給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2020-07-07Django多對(duì)多ManyToManyField字段的使用
Django是一個(gè)支持多對(duì)多關(guān)系的Web框架,可以在模型中定義多對(duì)多關(guān)系,本文主要介紹了Django多對(duì)多ManyToManyField字段的使用,感興趣的可以了解一下2023-12-12Python中zip()函數(shù)用法實(shí)例教程
這篇文章主要介紹了Python中zip()函數(shù)用法實(shí)例教程,對(duì)Python初學(xué)者有一定的借鑒價(jià)值,需要的朋友可以參考下2014-07-07Python解方程組 scipy.optimize.fsolve()函數(shù)如何求解帶有循環(huán)求和的方程式
這篇文章主要介紹了Python解方程組 scipy.optimize.fsolve()函數(shù)如何求解帶有循環(huán)求和的方程式,本文通過(guò)實(shí)例代碼給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2023-06-06