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

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

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

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

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

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

