基于Python打造账号共享浏览器功能


Posted in Python onMay 30, 2019

本篇文章介绍的内容会涉及到以下知识:

  • PyQt5的使用;
  • Selenium的使用;
  • 代理服务器的架设和使用;

一、账号限制之痛

在如今的互联网中,免费的信息和资源占据了很大一部分,各类互联网应用提供了各行各业的资讯和资源。这是互联网能够不断繁荣和扩大的重要原因之一。

与此同时,一些收费或不公开的互联网应用则构成了互联网世界中更有价值和意义的部分。

一些限制性较低的网站,可能仅仅需要进行用户登录即可使用服务;

基于Python打造账号共享浏览器功能

一些限制性中等的网站,则可能会出于账户安全或是其他方面的因素考虑,限制账号在一定时间一定IP范围内在进行登录使用;

基于Python打造账号共享浏览器功能

而一些限制性很高的网站,则可能需要使用到硬件设备(比如U盾、加密狗等)+账号进行登录,部分还会配合使用到浏览器插件。

基于Python打造账号共享浏览器功能

这些对账号登录的限制措施很大程度上确保了账户的安全性,但是却给使用者带来了很大的不便。

出于某些需求,我们可能需要将一个包含限制登录和使用的账号分享给多个人同时使用,这时候,我们就可以借助Python来完美实现这个需求了。

二、突破账号使用限制

基于Python打造账号共享浏览器功能

在这个方案中,我们需要使用到以下工具:

Selenium:用于模拟登录目标网站; Cookie存储服务:用于存储和返回目标网站登录成功的Cookie; 一个基于PyQt5或PiSide2的QWebEngine模块制作的浏览器;

我们首先借助Selenium对目标网站进行模拟登录并不断维持登录状态,将登录成功和更新的Cookie上传给Cookie存储服务;

然后使用PyQt5或PySide2借助其QWebEngine模块的浏览器核心自制一个浏览器。

在启动的时候从Cookie存储服务中获取最新的Cookie,将获取到的Cookie配置为浏览器默认全局Cookie。

这样,在我们打开目标网站的时候,默认就是已经登录后的状态了。如此就免除了登录限制;

三、处理账号登录IP异常

在上面提到的方案中,基本可以实现账号的共享,但是问题也是有的。比如:

多个用户同时访问的时候,同一个Cookie会匹配给多个IP地址,这对于网站后台而言,可能会将其识别为多个用户登录,从而导致频繁掉线。

多个用户访问,会使同一个账号出现多个IP地址,这对于一些安全等级较高的网站来说,会将其判定为存在疑似用户被盗号的风险,进行限制账号登录和访问。

面对这种情况,我们则需要下面这种方案:

基于Python打造账号共享浏览器功能

在这个方案中,我们加入了一个关键的代理服务器。

这个代理服务器会对包括Selenium和浏览器的所有请求进行转发。

Selenium通过这个代理服务器模拟登录目标网站,

自制的Qt浏览器也默认通过代理服务器访问目标网站。

在加入代理服务器之后,无论是多少个用户同时访问目标网站,所呈现出来的IP地址永远只有代理服务器的IP地址这一个。

这样,就避免了因为多个用户访问导致同一账号被多个IP地址使用,从而导致账号掉线和限制登录的风险了。

总结

以上所述是小编给大家介绍的基于Python打造账号共享浏览器功能,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对三水点靠木网站的支持!
如果你觉得本文对你有帮助,欢迎转载,烦请注明出处,谢谢!

Python 相关文章推荐
python的urllib模块显示下载进度示例
Jan 17 Python
Python使用multiprocessing实现一个最简单的分布式作业调度系统
Mar 14 Python
解决PyCharm中光标变粗的问题
Aug 05 Python
django 创建过滤器的实例详解
Aug 14 Python
在PyCharm下打包*.py程序成.exe的方法
Nov 29 Python
django 捕获异常和日志系统过程详解
Jul 18 Python
pytorch 可视化feature map的示例代码
Aug 20 Python
python pycharm的安装及其使用
Oct 11 Python
Python爬虫使用浏览器cookies:browsercookie过程解析
Oct 22 Python
python常用排序算法的实现代码
Nov 08 Python
matplotlib subplot绘制多个子图的方法示例
Jul 28 Python
Numpy ndarray 多维数组对象的使用
Feb 10 Python
Python实现带下标索引的遍历操作示例
May 30 #Python
Python动态参数/命名空间/函数嵌套/global和nonlocal
May 29 #Python
python2和python3在处理字符串上的区别详解
May 29 #Python
python TF-IDF算法实现文本关键词提取
May 29 #Python
详解Python odoo中嵌入html简单的分页功能
May 29 #Python
Python 3.8中实现functools.cached_property功能
May 29 #Python
Python3+Pycharm+PyQt5环境搭建步骤图文详解
May 29 #Python
You might like
PHP实现多条件查询实例代码
2010/07/17 PHP
PHP与SQL注入攻击防范小技巧
2011/09/16 PHP
在Mac OS上自行编译安装Apache服务器和PHP解释器
2015/12/24 PHP
php安装扩展mysqli的实现步骤及报错解决办法
2017/09/23 PHP
Javascript中的数学函数集合
2007/05/08 Javascript
js RuntimeObject() 获取ie里面自定义函数或者属性的集合
2010/11/23 Javascript
『JavaScript』限制Input只能输入数字实现思路及代码
2013/04/22 Javascript
推荐25个超炫的jQuery网格插件
2014/11/28 Javascript
javascript 利用arguments实现可变长参数
2016/11/21 Javascript
原生js实现倒计时--2018
2017/02/21 Javascript
基于jQuery实现的Ajax 验证用户名唯一性实例代码
2017/06/28 jQuery
javascript简写常用的12个技巧(可以大大减少你的js代码量)
2020/03/28 Javascript
vue2里面ref的具体使用方法
2017/10/27 Javascript
jquery手机触屏滑动拼音字母城市选择器的实例代码
2017/12/11 jQuery
纯JS实现可用于页码更换的飞页特效示例
2018/05/21 Javascript
layui框架table 数据表格的方法级渲染详解
2018/08/19 Javascript
10分钟彻底搞懂Http的强制缓存和协商缓存(小结)
2018/08/30 Javascript
vue完成项目后,打包成静态文件的方法
2018/09/03 Javascript
vue 表单验证按钮事件交由父组件触发的方法
2018/12/17 Javascript
VUE安装使用教程详解
2019/06/03 Javascript
[12:51]71泪洒现场!是DOTA2让经典重现
2014/03/24 DOTA
python实现批量转换文件编码(批转换编码示例)
2014/01/23 Python
Python求两个list的差集、交集与并集的方法
2014/11/01 Python
pygame学习笔记(1):矩形、圆型画图实例
2015/04/15 Python
Python实现读取并保存文件的类
2017/05/11 Python
Python多线程中阻塞(join)与锁(Lock)使用误区解析
2018/04/27 Python
Python list运算操作代码实例解析
2020/01/20 Python
python爬虫利用代理池更换IP的方法步骤
2021/02/21 Python
HTML5 Canvas实现360度全景图的示例代码
2018/01/29 HTML / CSS
京东港澳售:京东直邮港澳台
2018/01/31 全球购物
2014年大学生就业规划书
2014/04/04 职场文书
综合办公室主任岗位职责
2014/04/13 职场文书
幽默自我介绍演讲稿
2014/08/21 职场文书
工作态度检讨书范文
2015/05/06 职场文书
2015年公司中秋节致辞
2015/07/31 职场文书
请学会珍惜眼前,因为人生没有下辈子!
2019/11/12 职场文书