基于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实现获取某天是某个月中的第几周
Feb 11 Python
在windows下快速搭建web.py开发框架方法
Apr 22 Python
Python实现螺旋矩阵的填充算法示例
Dec 28 Python
解决Ubuntu pip 安装 mysql-python包出错的问题
Jun 11 Python
python 读取.csv文件数据到数组(矩阵)的实例讲解
Jun 14 Python
python字典一键多值实例代码分享
Jun 14 Python
纯python进行矩阵的相乘运算的方法示例
Jul 17 Python
关于Keras模型可视化教程及关键问题的解决
Jan 24 Python
利用pandas向一个csv文件追加写入数据的实现示例
Apr 23 Python
python中requests模拟登录的三种方式(携带cookie/session进行请求网站)
Nov 17 Python
详解如何用Python实现感知器算法
Jun 18 Python
python获取对象信息的实例详解
Jul 07 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 数组教程 定义数组
2009/10/23 PHP
PHP中使用cURL实现Get和Post请求的方法
2013/03/13 PHP
做了CDN获取用户真实IP的函数代码(PHP与Asp设置方式)
2013/04/13 PHP
php中PDO方式实现数据库的增删改查
2015/05/17 PHP
基于PHP实现等比压缩图片大小
2016/03/04 PHP
laravel 解决paginate查询多个字段报错的问题
2019/10/22 PHP
js 判断 enter 事件
2009/02/12 Javascript
学习JavaScript的最佳方法分享
2011/10/21 Javascript
JavaScript高级程序设计 读书笔记之八 Function类及闭包
2012/02/27 Javascript
jQuery防止click双击多次提交及传递动态函数或多参数
2014/04/02 Javascript
【经验总结】编写JavaScript代码时应遵循的14条规律
2016/06/20 Javascript
Vue.js每天必学之内部响应式原理探究
2016/09/07 Javascript
JavaScript实现时钟滴答声效果
2017/01/29 Javascript
当vue路由变化时,改变导航栏的样式方法
2018/08/22 Javascript
Vue.js 中的 v-show 指令及用法详解
2018/11/19 Javascript
webpack打包多页面的方法
2018/11/30 Javascript
Element输入框带历史查询记录的实现示例
2019/01/15 Javascript
Python urllib模块urlopen()与urlretrieve()详解
2013/11/01 Python
Python素数检测的方法
2015/05/11 Python
python实现简单聊天应用 python群聊和点对点均实现
2017/09/14 Python
解决Django migrate No changes detected 不能创建表的问题
2018/05/27 Python
Linux下多个Python版本安装教程
2018/08/15 Python
Python关于excel和shp的使用在matplotlib
2019/01/03 Python
django使用django-apscheduler 实现定时任务的例子
2019/07/20 Python
python mysql自增字段AUTO_INCREMENT值的修改方式
2020/05/18 Python
css3+伪元素实现鼠标移入时下划线向两边展开的效果
2017/04/25 HTML / CSS
实例讲解使用HTML5 Canvas绘制阴影效果的方法
2016/03/25 HTML / CSS
美国时尚在线:Showpo
2017/09/08 全球购物
英国皇家邮政海外旗舰店:Royal Mail
2018/02/21 全球购物
意大利奢侈品购物网站:Deliberti
2019/10/08 全球购物
Chi Chi London官网:购买连衣裙和礼服
2020/10/25 全球购物
会话Bean的种类
2013/11/07 面试题
C#中类(class)与结构(struct)的异同
2013/11/03 面试题
幼儿园母亲节活动方案
2014/03/10 职场文书
小学运动会班级口号
2014/06/09 职场文书
小学数学继续教育研修日志
2015/11/13 职场文书