基于Python打造賬號共享瀏覽器功能
本篇文章介紹的內(nèi)容會涉及到以下知識:
- PyQt5的使用;
- Selenium的使用;
- 代理服務(wù)器的架設(shè)和使用;
一、賬號限制之痛
在如今的互聯(lián)網(wǎng)中,免費的信息和資源占據(jù)了很大一部分,各類互聯(lián)網(wǎng)應(yīng)用提供了各行各業(yè)的資訊和資源。這是互聯(lián)網(wǎng)能夠不斷繁榮和擴大的重要原因之一。
與此同時,一些收費或不公開的互聯(lián)網(wǎng)應(yīng)用則構(gòu)成了互聯(lián)網(wǎng)世界中更有價值和意義的部分。
一些限制性較低的網(wǎng)站,可能僅僅需要進行用戶登錄即可使用服務(wù);

一些限制性中等的網(wǎng)站,則可能會出于賬戶安全或是其他方面的因素考慮,限制賬號在一定時間一定IP范圍內(nèi)在進行登錄使用;

而一些限制性很高的網(wǎng)站,則可能需要使用到硬件設(shè)備(比如U盾、加密狗等)+賬號進行登錄,部分還會配合使用到瀏覽器插件。

這些對賬號登錄的限制措施很大程度上確保了賬戶的安全性,但是卻給使用者帶來了很大的不便。
出于某些需求,我們可能需要將一個包含限制登錄和使用的賬號分享給多個人同時使用,這時候,我們就可以借助Python來完美實現(xiàn)這個需求了。
二、突破賬號使用限制

在這個方案中,我們需要使用到以下工具:
Selenium:用于模擬登錄目標網(wǎng)站; Cookie存儲服務(wù):用于存儲和返回目標網(wǎng)站登錄成功的Cookie; 一個基于PyQt5或PiSide2的QWebEngine模塊制作的瀏覽器;
我們首先借助Selenium對目標網(wǎng)站進行模擬登錄并不斷維持登錄狀態(tài),將登錄成功和更新的Cookie上傳給Cookie存儲服務(wù);
然后使用PyQt5或PySide2借助其QWebEngine模塊的瀏覽器核心自制一個瀏覽器。
在啟動的時候從Cookie存儲服務(wù)中獲取最新的Cookie,將獲取到的Cookie配置為瀏覽器默認全局Cookie。
這樣,在我們打開目標網(wǎng)站的時候,默認就是已經(jīng)登錄后的狀態(tài)了。如此就免除了登錄限制;
三、處理賬號登錄IP異常
在上面提到的方案中,基本可以實現(xiàn)賬號的共享,但是問題也是有的。比如:
多個用戶同時訪問的時候,同一個Cookie會匹配給多個IP地址,這對于網(wǎng)站后臺而言,可能會將其識別為多個用戶登錄,從而導(dǎo)致頻繁掉線。
多個用戶訪問,會使同一個賬號出現(xiàn)多個IP地址,這對于一些安全等級較高的網(wǎng)站來說,會將其判定為存在疑似用戶被盜號的風(fēng)險,進行限制賬號登錄和訪問。
面對這種情況,我們則需要下面這種方案:

在這個方案中,我們加入了一個關(guān)鍵的代理服務(wù)器。
這個代理服務(wù)器會對包括Selenium和瀏覽器的所有請求進行轉(zhuǎn)發(fā)。
Selenium通過這個代理服務(wù)器模擬登錄目標網(wǎng)站,
自制的Qt瀏覽器也默認通過代理服務(wù)器訪問目標網(wǎng)站。
在加入代理服務(wù)器之后,無論是多少個用戶同時訪問目標網(wǎng)站,所呈現(xiàn)出來的IP地址永遠只有代理服務(wù)器的IP地址這一個。
這樣,就避免了因為多個用戶訪問導(dǎo)致同一賬號被多個IP地址使用,從而導(dǎo)致賬號掉線和限制登錄的風(fēng)險了。
總結(jié)
以上所述是小編給大家介紹的基于Python打造賬號共享瀏覽器功能,希望對大家有所幫助,如果大家有任何疑問請給我留言,小編會及時回復(fù)大家的。在此也非常感謝大家對腳本之家網(wǎng)站的支持!
如果你覺得本文對你有幫助,歡迎轉(zhuǎn)載,煩請注明出處,謝謝!
相關(guān)文章
Pycharm遠程調(diào)試和MySQL數(shù)據(jù)庫授權(quán)問題
這篇文章主要介紹了Pycharm遠程調(diào)試和MySQL數(shù)據(jù)庫授權(quán)問題,文章內(nèi)容介紹詳細,需要的小伙伴可以參考一下,希望對你的學(xué)習(xí)或工作有所幫助2022-03-03
Jupyter導(dǎo)入自定義模塊及導(dǎo)入后TypeError錯誤問題及解決
這篇文章主要介紹了Jupyter導(dǎo)入自定義模塊及導(dǎo)入后TypeError錯誤問題及解決,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教2023-01-01
Pandas數(shù)據(jù)清洗和預(yù)處理的實現(xiàn)示例
本文主要介紹了Pandas數(shù)據(jù)清洗和預(yù)處理的實現(xiàn)示例,包括處理缺失值、異常值,進行數(shù)據(jù)轉(zhuǎn)換和規(guī)范化,以及處理重復(fù)數(shù)據(jù)等操作,感興趣的可以了解一下2024-01-01
Django接收post前端返回的json格式數(shù)據(jù)代碼實現(xiàn)
這篇文章主要介紹了Django接收post前端返回的json格式數(shù)據(jù)代碼實現(xiàn),文中通過示例代碼介紹的非常詳細,對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友可以參考下2019-07-07
Python入門之三角函數(shù)atan2()函數(shù)詳解
這篇文章主要介紹了Python入門之三角函數(shù)atan2()函數(shù)詳解,分享了其實例,具有一定參考價值,需要的朋友可以了解下。2017-11-11

