您好,登錄后才能下訂單哦!
這篇文章主要為大家展示了“Python3爬蟲中如何實現模擬登錄”,內容簡而易懂,條理清晰,希望能夠幫助大家解決疑惑,下面讓小編帶領大家一起研究并學習一下“Python3爬蟲中如何實現模擬登錄”這篇文章吧。
我們都知道,在前端的加密驗證,只要把將加密環境還原出來,便能夠很輕易地登錄。
首先分析登錄的步驟,通過審查元素得知
<input type="button" id="login" name="login" class="login" onclick="Logon();" value="登錄">
點擊按鈕觸發Logon()函數,然后查找Logon()函數定義
function Logon() { }
函數定義內容各有不同,一般里面包含一些加密的操作,一般是使用寫好的js加密。我們所需要做的便是重復這些步驟,加密數據。
對于加密,有三種方法:
如果加密方法是base64之類的,可以直接用Python3的base64庫加密;
手動模仿;
直接調用js加密,需要先下載PyExecJS,有的電腦需要先安裝js的運行環境,比如Node.js。使用方法如下:
newusername = execjs.compile(content).call('base64encode', username)
其中content是js內容,base64encode是方法,username是參數,newusername是加密后的數據。
對于驗證碼的問題,先介紹下一般的圖片驗證碼,可以請求獲取驗證碼的地址,session之類的數據自己搞定,一般便可以請求成功,可以存到本地手動輸入,也可以使用識別的第三方模塊,但這個識別效果并不是很好。
然后,便是查看session,cookie。
接下來的操作就是構造請求頭headers,這個可以自行去控制臺查看或者使用wireshark, fiddler之類的抓包軟件查看。
最后便可以請求數據:
使用
s = requests.Session() s.headers.update(headers) r = s.post(url, data = params)
或者:
r = requests.get(url, headers = headers, data = params)
headers是你構造的請求頭,url是你請求的網站,params是加密的數據。
以上是“Python3爬蟲中如何實現模擬登錄”這篇文章的所有內容,感謝各位的閱讀!相信大家都有了一定的了解,希望分享的內容對大家有所幫助,如果還想學習更多知識,歡迎關注億速云行業資訊頻道!
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。