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

PyQt5的使用;

Selenium的使用;

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

一、账号限制之痛

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

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

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

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

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

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

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

二、突破账号使用限制

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

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

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

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

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

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

三、处理账号登录IP异常

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

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

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

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

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

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

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

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

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

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

总结

以上所述是小编给大家介绍的基于Python打造账号共享浏览器功能,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对我们网站的支持!

如果你觉得本文对你有帮助,欢迎转载,烦请注明出处,谢谢!

时间: 2019-05-28

python账号_基于Python打造账号共享浏览器功能相关推荐

  1. 用python做炒股软件-同花顺有python接口_基于python的炒股软件

    股票详细数据 怎么获得股市数据针对股票等金融数据的获取,python提供了一个非常实用的模块-tushare,自动完成了数据从采集.清洗到存储的全过程,可以极大减轻金融分析人员的工作量,下面我简单介绍 ...

  2. python产品缺陷_基于python从redmine-api中获取项目缺陷数据(1)

    1.引言 本文主要内容是将如何利用 Python 对 Redmine缺陷进行缺陷数据获取操作.目前统计缺陷数据时基本是根据项目手动去redmine获取缺陷数据,至少要花费一个工作日去完成,目前的目标是 ...

  3. 爬虫技术python流程图_基于Python的网络爬虫技术研究

    基于 Python 的网络爬虫技术研究 王碧瑶 [摘 要] 摘要:专用型的网络爬虫能够得到想要的返回结果 , 本文就以拉勾网作 为例子 , 对基于 Python 的网络爬虫技术进行研究和分析. [期刊 ...

  4. python分行_基于python实现对文件进行切分行

    针对配置文件进行切分,重组,每隔30行为一段,进行重新生成功能. 代码如下 #!/usr/local/python/bin/python # coding=utf-8 import sys impor ...

  5. python 机器学习_基于 Python 语言的机器学习工具Sklearn

    本篇介绍了Sklearn机器学习基础,从Sklearn的简介,模块以及与tensorflow的优劣势对比来了解基于Python语言的机器学习工具.    01.Sklearn简介 sklearn(sc ...

  6. python通信模块_基于Python的电路故障诊断系统通信模块的实现

    基于 Python 的电路故障诊断系统通信模块的实现 蔡莉莎 林尔敏 海南软件职业技术学院电子工程系 [摘 要] [文章摘要] [期刊名称] 电子制作 [年 ( 卷 ), 期] 2014(000)01 ...

  7. arcgis中python批处理_基于Python的ArcGIS空间数据格式批处理转换工具开发

    基于 Python 的 ArcGIS 空间数据格式批处理转换工具开 发 焦 洋,邓 鑫,李胜才 [摘 要] 摘 要 ArcGIS 仅提供了单个文件的空间数据格式转换工具.本文首先 研究基于 Pytho ...

  8. 虚拟仪器的python实现_基于Python的虚拟仪器技术探究及实现.pdf

    第 20卷 第 l6期 电子设计工程 2012年 8月 V01.20 No.16 E1ectronic Desin Engineering g Aug.2012 . . . . . . . . . . ...

  9. python温度传感器_基于python通过树莓派获取温度传感器的温湿度

    基于python通过树莓派获取温度传感器的温湿度 前面做过一个智能风扇,主要功能是通过温度来控制风扇的自动开关以及通过软件来进行控制风扇开关,功能都能实现但是 软件并没有做完,所以就不了了之. 我使用 ...

最新文章

  1. python游戏结束显示分数代码_当游戏循环在Python中运行时,多线程来显示游戏分数?...
  2. vwmare vSphere 4.0产品介绍
  3. 三剑客之sed常用操作
  4. leetcode242. 有效的字母异位词(两种方法map或数组)
  5. 将mysql的data目录移走方法
  6. 企业级Docker Registry开源工具Harbor的用户使用指南
  7. B站成立快乐奖学金 首期投入419万4172元
  8. 学科实践活动感悟50字_“五育并举”的一次生动实践——洪雅实验中学研学活动感悟...
  9. linux以长格式显示当前目录的详细信息,Linux常用命令系列——文件和目录操作命令(ls)...
  10. Jmeter学习之旅(四)——各类型的HTTP接口功能测试
  11. python GIL 全局锁
  12. IOCCC(The International Obfuscated C Code Contest)
  13. 怎么用计算机计算t分布的概率,MATLAB如何使用tpdf函数计算T分布的概率密度
  14. 正则表达式科学计数法_数据科学家的正则表达式
  15. php 获取搜索引擎,php获取搜索引擎关键字来源(支持百度、谷歌等搜索引擎)的函数...
  16. excel服务器 微信设置密码,如何用vba给excel工作簿批量设置添加打开密码? - EXCEL VBA - ExcelOffice【微信公众号:水星Excel】...
  17. JS 实现点击按钮实现超链接功能
  18. 使用ffmpeg剪辑视频【删除视频头部,尾部,中间,视频拼接,获取视频指定时间截图】
  19. EDT(异地通)区块链技术将极大影响的全行业,其中包括支付行业。
  20. Yii2.0 用户登录详解(上)

热门文章

  1. mo汇编指令_moshell常用指令描述
  2. 搭建spark源码运行环境报错及解决办法
  3. 微信代码错误:40164,加入白名单仍不起作用。
  4. Outlook Business Contact Manager 2010入门
  5. React中文文档之Components and Props
  6. FPGA——时钟分频
  7. 程序员成长之路(Day 12)
  8. pyepics Device:PVs的集合
  9. 【东方博宜】【入门】1326--需要安排几位师傅加工零件?
  10. C# winform跨线程操作控件