基于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中django框架通过正则搜索页面上email地址的方法
Mar 21 Python
九步学会Python装饰器
May 09 Python
Python的Django框架中的Context使用
Jul 15 Python
Python随机生成均匀分布在三角形内或者任意多边形内的点
Dec 14 Python
浅谈Python中的异常和JSON读写数据的实现
Feb 27 Python
matlab中二维插值函数interp2的使用详解
Apr 22 Python
小 200 行 Python 代码制作一个换脸程序
May 12 Python
基于opencv的selenium滑动验证码的实现
Jul 24 Python
Python如何解除一个装饰器
Aug 07 Python
Numpy中np.random.rand()和np.random.randn() 用法和区别详解
Oct 23 Python
python常见的占位符总结及用法
Jul 02 Python
Python中的turtle画箭头,矩形,五角星
Mar 16 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 session_set_save_handler 函数的用法(mysql)
2013/06/29 PHP
php使用websocket示例详解
2014/03/12 PHP
php基于表单密码验证与HTTP验证用法实例
2015/01/06 PHP
PHP+MySQL修改记录的方法
2015/01/21 PHP
Laravel 5.0 发布 新版本特性详解
2015/02/10 PHP
PHP大文件分割上传 PHP分片上传
2017/08/28 PHP
PHP中非常有用却鲜有人知的函数集锦
2019/08/17 PHP
一段非常简单的让图片自动切换js代码
2006/11/10 Javascript
Jquery AJAX POST与GET之间的区别
2013/11/14 Javascript
NodeJs基本语法和类型
2015/02/13 NodeJs
jQuery实现最简单的切换图效果【可兼容IE6、火狐、谷歌、opera等】
2016/09/04 Javascript
Javascript 详解封装from表单数据为json串进行ajax提交
2017/03/29 Javascript
js获取指定时间的前几秒
2017/04/05 Javascript
通过jquery toggleClass()属性制作文章段落更改背景颜色
2018/05/21 jQuery
JavaScript对象的浅拷贝与深拷贝实例分析
2018/07/25 Javascript
VUE v-model表单数据双向绑定完整示例
2019/01/21 Javascript
jquery实现二级导航下拉菜单效果实例
2019/05/14 jQuery
Vue + Element UI图片上传控件使用详解
2019/08/20 Javascript
JS控制GIF图片的停止与显示
2019/10/24 Javascript
python中List的sort方法指南
2014/09/01 Python
跟老齐学Python之编写类之一创建实例
2014/10/11 Python
Python采用Django开发自己的博客系统
2020/09/29 Python
Python爬虫实例爬取网站搞笑段子
2017/11/08 Python
FFT快速傅里叶变换的python实现过程解析
2019/10/21 Python
Scrapy框架实现的登录网站操作示例
2020/02/06 Python
python3安装OCR识别库tesserocr过程图解
2020/04/02 Python
tensorflow 动态获取 BatchSzie 的大小实例
2020/06/30 Python
使用Python爬取小姐姐图片(beautifulsoup法)
2021/02/11 Python
python 基于pygame实现俄罗斯方块
2021/03/02 Python
Lululemon英国官网:加拿大瑜伽服装品牌
2019/01/14 全球购物
香港莎莎官网Sasa.com:亚洲著名国际化妆品商城
2019/11/10 全球购物
这76道Java面试题及答案,祝你能成功通过面试
2016/04/16 面试题
外语学院毕业生的自我鉴定
2013/11/28 职场文书
爱国主义演讲稿
2014/05/07 职场文书
哈姆雷特读书笔记
2015/06/29 职场文书
《西门豹》教学反思
2016/02/23 职场文书