基于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封装对象实现时间效果
Apr 23 Python
Python使用百度API上传文件到百度网盘代码分享
Nov 08 Python
python僵尸进程产生的原因
Jul 21 Python
python爬虫中get和post方法介绍以及cookie作用
Feb 08 Python
在cmd命令行里进入和退出Python程序的方法
May 12 Python
python3写的简单本地文件上传服务器实例
Jun 04 Python
Django 外键的使用方法详解
Jul 19 Python
Python项目 基于Scapy实现SYN泛洪攻击的方法
Jul 23 Python
Python使用matplotlib绘制三维参数曲线操作示例
Sep 10 Python
PyCharm取消波浪线、下划线和中划线的实现
Mar 03 Python
Python 随机生成测试数据的模块:faker基本使用方法详解
Apr 09 Python
python爬虫如何解决图片验证码
Feb 14 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备份MySQL和网站发送到邮箱实例代码
2013/11/28 PHP
CentOS 6.3下安装PHP xcache扩展模块笔记
2014/09/10 PHP
PHP实现的登录,注册及密码修改功能分析
2016/11/25 PHP
PHP mongodb操作类定义与用法示例【适合mongodb2.x和mongodb3.x】
2018/06/16 PHP
PHP 图片合成、仿微信群头像的方法示例
2019/10/25 PHP
基于PHP+mysql实现新闻发布系统的开发
2020/08/06 PHP
Javascript中获取出错代码所在文件及行数的代码
2010/09/23 Javascript
jQuery.get、jQuery.getJSON、jQuery.post无法返回JSON问题的解决方法
2011/07/28 Javascript
用js小类库获取浏览器的高度和宽度信息
2012/01/15 Javascript
ext中store.load跟store.reload的区别示例介绍
2014/06/17 Javascript
基于Bootstrap的Metronic框架实现页面链接收藏夹功能
2016/08/29 Javascript
bootstrap table分页模板和获取表中的ID方法
2017/01/10 Javascript
在点击div中的p时,如何阻止事件冒泡
2017/02/07 Javascript
PHP实现本地图片上传和验证功能
2017/02/27 Javascript
Vue.js搭建移动端购物车界面
2020/06/28 Javascript
nodejs超出最大的调用栈错误问题
2017/12/27 NodeJs
webpack项目使用eslint建立代码规范实现
2019/05/16 Javascript
JS实现手写 forEach算法示例
2020/04/29 Javascript
JQuery获得内容和属性方法解析
2020/05/30 jQuery
swiperjs实现导航与tab页的联动
2020/12/13 Javascript
[36:22]VP vs Serenity 2018国际邀请赛小组赛BO2 第一场 8.16
2018/08/17 DOTA
用python实现的可以拷贝或剪切一个文件列表中的所有文件
2009/04/30 Python
python入门:这篇文章带你直接学会python
2018/09/14 Python
win7 x64系统中安装Scrapy的方法
2018/11/18 Python
对于Python深浅拷贝的理解
2019/07/29 Python
Python多线程Threading、子线程与守护线程实例详解
2020/03/24 Python
解决Python数据可视化中文部分显示方块问题
2020/05/16 Python
python文件操作seek()偏移量,读取指正到指定位置操作
2020/07/05 Python
Python日志打印里logging.getLogger源码分析详解
2021/01/17 Python
Java编程面试题
2016/04/04 面试题
文员个人的求职信范文
2013/09/26 职场文书
建筑学推荐信
2013/11/03 职场文书
信用社主任竞聘演讲稿
2014/05/23 职场文书
法学求职信
2014/06/22 职场文书
党员教师群众路线个人整改措施
2014/10/28 职场文书
Python中的 Set 与 dict
2022/03/13 Python