浅析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的Cookie.py模块支持冒号做key的方法
Dec 28 Python
python 排列组合之itertools
Mar 20 Python
Python实现PS图像调整颜色梯度效果示例
Jan 25 Python
windows10下安装TensorFlow Object Detection API的步骤
Jun 13 Python
将python2.7添加进64位系统的注册表方式
Nov 20 Python
python读取tif图片时保留其16bit的编码格式实例
Jan 13 Python
python中68个内置函数的总结与介绍
Feb 24 Python
Django中的模型类设计及展示示例详解
May 29 Python
scrapy框架携带cookie访问淘宝购物车功能的实现代码
Jul 07 Python
Selenium执行完毕未关闭chromedriver/geckodriver进程的解决办法(java版+python版)
Dec 07 Python
Python实现照片卡通化
Dec 06 Python
python机器学习实现oneR算法(以鸢尾data为例)
Mar 03 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 HandlerSocket的使用
2011/05/02 PHP
深入讲解PHP的对象注入(Object Injection)
2017/03/01 PHP
GRID拖拽行的实例代码
2013/07/18 Javascript
使用js实现的简单拖拽效果
2015/03/18 Javascript
Jquery数字上下滚动动态切换插件
2015/08/08 Javascript
javascript中caller和callee详解
2015/08/10 Javascript
浅谈JavaScript事件绑定的常用方法及其优缺点分析
2016/11/01 Javascript
AngularJS入门教程之路由机制ngRoute实例分析
2016/12/13 Javascript
ThinkJS中如何使用MongoDB的CURD操作
2016/12/13 Javascript
bootstrap modal弹出框的垂直居中
2016/12/14 Javascript
javascript观察者模式实现自动刷新效果
2017/09/05 Javascript
日期时间范围选择插件:daterangepicker使用总结(必看篇)
2017/09/14 Javascript
Vue导出json数据到Excel电子表格的示例
2017/12/04 Javascript
Angular5给组件本身的标签添加样式class的方法
2018/04/07 Javascript
JavaScript继承定义与用法实践分析
2018/05/28 Javascript
layui表格 返回的数据状态异常的解决方法
2019/09/10 Javascript
js实现炫酷光感效果
2020/09/05 Javascript
[00:52]黑暗之门更新 新英雄孽主驾临DOTA2
2016/08/24 DOTA
[59:15]EG vs LGD 2018国际邀请赛淘汰赛BO3 第一场 8.26
2018/08/29 DOTA
详解python中TCP协议中的粘包问题
2019/03/22 Python
Python编写通讯录通过数据库存储实现模糊查询功能
2019/07/18 Python
Tensorflow中批量读取数据的案列分析及TFRecord文件的打包与读取
2020/06/30 Python
django form和field具体方法和属性说明
2020/07/09 Python
amazeui页面校验功能的实现代码
2020/08/24 HTML / CSS
豆腐の盛田屋官网:日本自然派的豆乳面膜、肥皂、化妆水、乳液等
2016/10/08 全球购物
What's the difference between Debug and Trace class? (Debug类与Trace类有什么区别)
2013/09/10 面试题
JavaScript实现页面动态验证码的实现示例
2021/03/23 Javascript
JavaScript实现前端网页版倒计时
2021/03/24 Javascript
酒店led欢迎词
2014/01/09 职场文书
医院实习接收函
2014/01/12 职场文书
镇人大副主席民主生活会对照检查材料思想汇报
2014/10/01 职场文书
长城的导游词
2015/01/30 职场文书
求职信:求职应该注意的问题
2019/04/24 职场文书
什么是创业计划书?什么是商业计划书?这里一一解答
2019/07/12 职场文书
《围炉夜话》110句人生箴言,精辟有内涵,引人深思
2019/10/23 职场文书
纯CSS实现hover图片pop-out弹出效果的实例代码
2021/04/16 HTML / CSS