浅析Python3爬虫登录模拟


Posted in Python onFebruary 07, 2018

使用Python爬虫登录系统之后,能够实现的操作就多了很多,下面大致介绍下如何使用Python模拟登录

我们都知道,在前端的加密验证,只要把将加密环境还原出来,便能够很轻易地登录。

首先分析登录的步骤,通过审查元素得知

<input type="button" id="login" name="login" class="login" onclick="Logon();" value="登录">

点击按钮触发Logon()函数,然后查找Logon()函数定义

function Logon() {
}

函数定义内容各有不同,一般里面包含一些加密的操作,一般是使用写好的js加密。我们所需要做的便是重复这些步骤,加密数据。

对于加密,有三种方法:

  1. 如果加密方法是base64之类的,可以直接用Python3的base64库加密;
  2. 手动模仿;
  3. 直接调用js加密,需要先下载PyExecJS,有的电脑需要先安装js的运行环境,比如Node.js。使用方法如下:
newusername = execjs.compile(content).call('base64encode', username)

其中content是js内容,base64encode是方法,username是参数,newusername是加密后的数据。

对于验证码的问题,先介绍下一般的图片验证码,可以请求获取验证码的地址,session之类的数据自己搞定,一般便可以请求成功,可以存到本地手动输入,也可以使用识别的第三方模块,但这个识别效果并不是很好。

然后,便是查看session,cookie。

接下来的操作就是构造请求头headers,这个可以自行去控制台查看或者使用wireshark, fiddler之类的抓包软件查看。

最后便可以请求数据:

使用

s = requests.Session()
s.headers.update(headers)
r = s.post(url, data = params)

或者:

r = requests.get(url, headers = headers, data = params)

headers是你构造的请求头,url是你请求的网站,params是加密的数据。

Python 相关文章推荐
Python使用minidom读写xml的方法
Jun 03 Python
python Pygame的具体使用讲解
Nov 03 Python
Python使用一行代码获取上个月是几月
Aug 30 Python
python sort、sort_index方法代码实例
Mar 28 Python
Python中判断子串存在的性能比较及分析总结
Jun 23 Python
基于sklearn实现Bagging算法(python)
Jul 11 Python
Django ORM 查询管理器源码解析
Aug 05 Python
python3实现绘制二维点图
Dec 04 Python
pandas 对group进行聚合的例子
Dec 27 Python
下载与当前Chrome对应的chromedriver.exe(用于python+selenium)
Jan 14 Python
python实现的分层随机抽样案例
Feb 25 Python
python 解决mysql where in 对列表(list,,array)问题
Jun 06 Python
Python实现的三层BP神经网络算法示例
Feb 07 #Python
Python 12306抢火车票脚本
Feb 07 #Python
django限制匿名用户访问及重定向的方法实例
Feb 07 #Python
Python用 KNN 进行验证码识别的实现方法
Feb 06 #Python
Python实现的径向基(RBF)神经网络示例
Feb 06 #Python
python实现淘宝秒杀聚划算抢购自动提醒源码
Jun 23 #Python
初探TensorFLow从文件读取图片的四种方式
Feb 06 #Python
You might like
php上传中文文件名乱码问题处理方案
2015/02/03 PHP
Zend Framework教程之模型Model用法简单实例
2016/03/04 PHP
laravel 实现划分admin和home 模块分组
2019/10/15 PHP
JS下拉缓冲菜单示例代码
2013/08/30 Javascript
Nodejs极简入门教程(三):进程
2014/10/27 NodeJs
node.js中的fs.chown方法使用说明
2014/12/16 Javascript
javascript实现显示和隐藏div方法汇总
2015/08/14 Javascript
遍历json 对象的属性并且动态添加属性的实现
2016/12/02 Javascript
jQuery实现的仿百度,仿谷歌搜索下拉框效果示例
2016/12/30 Javascript
AngularJS表单基本操作
2017/01/09 Javascript
JS实现的Unicode编码转换操作示例
2017/04/28 Javascript
js+html制作简单日历的方法
2017/06/27 Javascript
Node接收电子邮件的实例代码
2017/07/21 Javascript
BootStrap导航栏问题记录
2017/07/31 Javascript
移动web开发之touch事件实例详解
2018/01/17 Javascript
node.js基础知识小结
2018/02/26 Javascript
微信小程序性能优化之checkSession的使用
2019/03/06 Javascript
详解Vue3.0 前的 TypeScript 最佳入门实践
2019/06/18 Javascript
如何在JavaScript中等分数组的实现
2020/12/13 Javascript
[05:10]2014DOTA2国际邀请赛 通往胜利之匙赛场探秘之旅
2014/07/18 DOTA
Python中urllib2模块的8个使用细节分享
2015/01/01 Python
python分布式环境下的限流器的示例
2017/10/26 Python
django连接mysql配置方法总结(推荐)
2018/08/18 Python
python实现局域网内实时通信代码
2019/12/22 Python
Pytorch DataLoader 变长数据处理方式
2020/01/08 Python
用python解压分析jar包实例
2020/01/16 Python
Python实现捕获异常发生的文件和具体行数
2020/04/25 Python
如何用python免费看美剧
2020/08/11 Python
thinkphp5 路由分发原理
2021/03/18 PHP
微信浏览器左上角返回按钮拦截功能
2017/11/21 HTML / CSS
html5 canvas的绘制文本自动换行的示例代码
2018/09/17 HTML / CSS
Revolution Beauty美国官网:英国知名化妆品网站
2018/07/23 全球购物
应届毕业生简历自我评价
2014/01/31 职场文书
2015年医药代表工作总结
2015/04/25 职场文书
教师见习总结范文
2015/06/23 职场文书
小学作文指导之如何写人?
2019/07/08 职场文书