浅析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操作sqlite的CRUD实例分析
May 08 Python
Python实现的NN神经网络算法完整示例
Jun 19 Python
python 自定义对象的打印方法
Jan 12 Python
Python远程视频监控程序的实例代码
May 05 Python
Python中import导入不同目录的模块方法详解
Feb 18 Python
如何通过Python3和ssl实现加密通信功能
May 09 Python
基于Python把网站域名解析成ip地址
May 25 Python
升级keras解决load_weights()中的未定义skip_mismatch关键字问题
Jun 12 Python
Python 创建守护进程的示例
Sep 29 Python
python 动态渲染 mysql 配置文件的示例
Nov 20 Python
python中xlutils库用法浅析
Dec 29 Python
pytorch显存一直变大的解决方案
Apr 08 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连接MySQL代码的参数说明
2008/06/07 PHP
php中的观察者模式简单实例
2015/01/20 PHP
PHP中quotemeta()函数的用法讲解
2019/04/04 PHP
jquery imgareaselect 使用利用js与程序结合实现图片剪切
2009/07/30 Javascript
随窗体滑动的小插件sticky源码
2013/06/21 Javascript
js实现网页右上角滑出会自动消失大幅广告的方法
2015/02/27 Javascript
使用Javascript写的2048小游戏
2015/11/25 Javascript
详解AngularJS 模态对话框
2016/04/07 Javascript
Bootstrap基本组件学习笔记之input输入框组(9)
2016/12/07 Javascript
Node.js读取文件内容示例
2017/03/07 Javascript
javascript 正则表达式分组、断言详解
2017/04/20 Javascript
使用bootstraptable插件实现表格记录的查询、分页、排序操作
2017/08/06 Javascript
vue.js评论发布信息可插入QQ表情功能
2017/08/08 Javascript
快速将Vue项目升级到webpack3的方法步骤
2017/09/14 Javascript
在vue中使用jointjs的方法
2018/03/24 Javascript
C#程序员入门学习微信小程序的笔记
2019/03/05 Javascript
python通过urllib2爬网页上种子下载示例
2014/02/24 Python
12步教你理解Python装饰器
2016/02/25 Python
python编程培训 python培训靠谱吗
2018/01/17 Python
Python中将变量按行写入txt文本中的方法
2018/04/03 Python
python实现停车管理系统
2018/11/30 Python
Pandas_cum累积计算和rolling滚动计算的用法详解
2019/07/04 Python
多版本python的pip 升级后, pip2 pip3 与python版本失配解决方法
2019/09/11 Python
利用python、tensorflow、opencv、pyqt5实现人脸实时签到系统
2019/09/25 Python
利用Python实现某OA系统的自动定位功能
2020/05/27 Python
PyQt5实现画布小程序
2020/05/30 Python
Django 用户认证Auth组件的使用
2020/11/30 Python
Canvas globalCompositeOperation
2018/12/18 HTML / CSS
菲律宾优惠券网站:MetroDeal
2019/04/12 全球购物
环境工程大学生个人的自我评价
2013/10/08 职场文书
体育教育专业毕业生自荐信
2013/11/15 职场文书
新学期家长寄语
2014/01/19 职场文书
竞选班长演讲稿500字
2014/08/22 职场文书
2015年员工试用期工作总结
2014/12/12 职场文书
靠谱的活动总结
2019/04/16 职场文书
标会主持词应该怎么写?
2019/08/15 职场文书