淺析Python3爬蟲登錄模擬
使用Python爬蟲登錄系統(tǒng)之后,能夠?qū)崿F(xiàn)的操作就多了很多,下面大致介紹下如何使用Python模擬登錄。
我們都知道,在前端的加密驗(yàn)證,只要把將加密環(huán)境還原出來,便能夠很輕易地登錄。
首先分析登錄的步驟,通過審查元素得知
<input type="button" id="login" name="login" class="login" onclick="Logon();" value="登錄">
點(diǎn)擊按鈕觸發(fā)Logon()函數(shù),然后查找Logon()函數(shù)定義
function Logon() {
}
函數(shù)定義內(nèi)容各有不同,一般里面包含一些加密的操作,一般是使用寫好的js加密。我們所需要做的便是重復(fù)這些步驟,加密數(shù)據(jù)。
對于加密,有三種方法:
- 如果加密方法是base64之類的,可以直接用Python3的base64庫加密;
- 手動(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ù)。
對于驗(yàn)證碼的問題,先介紹下一般的圖片驗(yàn)證碼,可以請求獲取驗(yàn)證碼的地址,session之類的數(shù)據(jù)自己搞定,一般便可以請求成功,可以存到本地手動(dòng)輸入,也可以使用識(shí)別的第三方模塊,但這個(gè)識(shí)別效果并不是很好。
然后,便是查看session,cookie。
接下來的操作就是構(gòu)造請求頭headers,這個(gè)可以自行去控制臺(tái)查看或者使用wireshark, fiddler之類的抓包軟件查看。
最后便可以請求數(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)造的請求頭,url是你請求的網(wǎng)站,params是加密的數(shù)據(jù)。
相關(guān)文章
Python爬取破解無線網(wǎng)絡(luò)wifi密碼過程解析
這篇文章主要介紹了Python爬取破解無線網(wǎng)絡(luò)密碼過程解析,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下2019-09-09
Python打開文件,將list、numpy數(shù)組內(nèi)容寫入txt文件中的方法
今天小編就為大家分享一篇Python打開文件,將list、numpy數(shù)組內(nèi)容寫入txt文件中的方法,具有很好的參考價(jià)值,希望對大家有所幫助。一起跟隨小編過來看看吧2018-10-10
Python3基礎(chǔ)之list列表實(shí)例解析
這篇文章主要介紹了Python3的list列表用法,這是Python3數(shù)據(jù)類型中非常常見的應(yīng)用,需要的朋友可以參考下2014-08-08
Python代碼統(tǒng)計(jì)耗時(shí)的方法詳解
在現(xiàn)代軟件開發(fā)中,性能優(yōu)化是一個(gè)至關(guān)重要的環(huán)節(jié),無論是開發(fā)大型系統(tǒng)還是小型工具,開發(fā)者都需要對代碼的執(zhí)行時(shí)間進(jìn)行精確測量,以便找出瓶頸并優(yōu)化性能,本文給大家介紹了Python代碼統(tǒng)計(jì)耗時(shí)的方法,需要的朋友可以參考下2025-02-02
讀取json格式為DataFrame(可轉(zhuǎn)為.csv)的實(shí)例講解
今天小編就為大家分享一篇讀取json格式為DataFrame(可轉(zhuǎn)為.csv)的實(shí)例講解,具有很好的參考價(jià)值,希望對大家有所幫助。一起跟隨小編過來看看吧2018-06-06
Pytorch之Tensor和Numpy之間的轉(zhuǎn)換的實(shí)現(xiàn)方法
這篇文章主要介紹了Pytorch之Tensor和Numpy之間的轉(zhuǎn)換的實(shí)現(xiàn)方法,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2020-09-09
詳解Python中Sync與Async執(zhí)行速度快慢對比
Python新的版本中支持了async/await語法, 很多文章都在說這種語法的實(shí)現(xiàn)代碼會(huì)變得很快, 但是這種快是有場景限制的。這篇文章將嘗試簡單的解釋為何Async的代碼在某些場景比Sync的代碼快2023-03-03
python GUI庫圖形界面開發(fā)之PyQt5拖放控件實(shí)例詳解
這篇文章主要介紹了python GUI庫圖形界面開發(fā)之PyQt5使用拖放控件實(shí)例詳解,需要的朋友可以參考下2020-02-02

