浅析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深入06——python的内存管理详解
Dec 07 Python
python添加模块搜索路径方法
Sep 11 Python
Python使用itertools模块实现排列组合功能示例
Jul 02 Python
转换科学计数法的数值字符串为decimal类型的方法
Jul 16 Python
python 实现求解字符串集的最长公共前缀方法
Jul 20 Python
selenium+python实现自动化登录的方法
Sep 04 Python
python实现转盘效果 python实现轮盘抽奖游戏
Jan 22 Python
python微信聊天机器人改进版(定时或触发抓取天气预报、励志语录等,向好友推送)
Apr 25 Python
PyQt5创建一个新窗口的实例
Jun 20 Python
PyTorch中Tensor的数据类型和运算的使用
Sep 03 Python
python函数超时自动退出的实操方法
Dec 28 Python
python_tkinter弹出对话框创建
Mar 20 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
一个ubbcode的函数,速度很快.
2006/10/09 PHP
PHP内置过滤器FILTER使用实例
2014/06/25 PHP
jQuery 连续列表实现代码
2009/12/21 Javascript
JQuery Tab选项卡效果代码改进版
2010/04/01 Javascript
jQuery 阴影插件代码分享
2012/01/09 Javascript
js解析与序列化json数据(三)json的解析探讨
2013/02/01 Javascript
用循环或if语句从json中取数据示例
2014/08/18 Javascript
Jquery+Ajax+PHP+MySQL实现分类列表管理(上)
2015/10/28 Javascript
JS实现带提示的星级评分效果完整实例
2015/10/30 Javascript
jQuery中cookie插件用法实例分析
2015/12/04 Javascript
7个去伪存真的JavaScript面试题
2016/01/07 Javascript
jQuery解决IE6、7、8不能使用 JSON.stringify 函数的问题
2016/05/31 Javascript
jQuery插件zTree实现清空选中第一个节点所有子节点的方法
2017/03/08 Javascript
Require.js的基本用法详解
2017/07/03 Javascript
vue+vux实现移动端文件上传样式
2017/07/28 Javascript
Angular2+国际化方案(ngx-translate)的示例代码
2017/08/23 Javascript
bootstrap fileinput实现文件上传功能
2017/08/23 Javascript
详解Nuxt.js Vue服务端渲染摸索
2018/02/08 Javascript
vue-cli项目中使用Mockjs详解
2018/05/14 Javascript
nodejs实现一个word文档解析器思路详解
2018/08/14 NodeJs
vue同个按钮控制展开和折叠同个事件操作
2020/07/29 Javascript
es5 类与es6中class的区别小结
2020/11/09 Javascript
Python爬虫DOTA排行榜爬取实例(分享)
2017/06/13 Python
python 多线程串行和并行的实例
2019/02/22 Python
python单元测试框架pytest的使用示例
2020/10/07 Python
Python中免验证跳转到内容页的实例代码
2020/10/23 Python
总结html5自定义属性有哪些
2020/04/01 HTML / CSS
kfc实习自我鉴定
2013/12/14 职场文书
房产销售经理职责
2013/12/20 职场文书
求职信需要的五点内容
2014/02/01 职场文书
基层党员对照检查材料
2014/08/25 职场文书
爱心捐款活动总结
2015/05/09 职场文书
十月围城观后感
2015/06/08 职场文书
2016年教师节特级教师获奖感言
2015/12/09 职场文书
Python实现PIL图像处理库绘制国际象棋棋盘
2021/07/16 Python
Mysql数据库事务的脏读幻读及不可重复读详解
2022/05/30 MySQL