浅析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发腾讯微博代码分享
Jan 10 Python
python执行get提交的方法
Apr 29 Python
使用python实现省市三级菜单效果
Jan 20 Python
python开发之list操作实例分析
Feb 22 Python
python3实现磁盘空间监控
Jun 21 Python
Selenium(Python web测试工具)基本用法详解
Aug 10 Python
django如何实现视图重定向
Jul 24 Python
python tkinter基本属性详解
Sep 16 Python
python获取array中指定元素的示例
Nov 26 Python
python实现密码强度校验
Mar 18 Python
python线程里哪种模块比较适合
Aug 02 Python
利用python+ffmpeg合并B站视频及格式转换的实例代码
Nov 24 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
2006/10/09 PHP
php函数serialize()与unserialize()用法实例
2014/11/06 PHP
Laravel 5框架学习之向视图传送数据
2015/04/08 PHP
php实现base64图片上传方式实例代码
2017/02/22 PHP
php连接MSsql server的五种方法总结
2018/03/04 PHP
PHP 实现缩略图
2021/03/09 PHP
javascript 常用方法总结
2009/06/03 Javascript
jquery 弹出登录窗口实现代码
2009/12/24 Javascript
JavaScript splice()方法详解
2020/09/22 Javascript
javascript中对Attr(dom中属性)的操作示例讲解
2013/12/02 Javascript
JavaScript实现的类字典插入或更新方法实例
2015/07/10 Javascript
yarn与npm的命令行小结
2016/10/20 Javascript
jQuery基于ajax操作json数据简单示例
2017/01/05 Javascript
使用D3.js制作图表详解
2017/08/13 Javascript
vue2 router 动态传参,多个参数的实例
2017/11/10 Javascript
jQuery实现的3D版图片轮播示例【滑动轮播】
2019/01/18 jQuery
在vue和element-ui的table中实现分页复选功能
2019/12/04 Javascript
Vue自定义全局弹窗组件操作
2020/08/11 Javascript
Python httplib模块使用实例
2015/04/11 Python
Python最小二乘法矩阵
2019/01/02 Python
Python网络爬虫之爬取微博热搜
2019/04/18 Python
Python虚拟环境venv用法详解
2020/05/25 Python
使用html5新特性轻松监听任何App自带返回键的示例
2018/03/13 HTML / CSS
美国时尚在线:Showpo
2017/09/08 全球购物
Vans澳大利亚官网:购买鞋子、服装及配件
2019/09/05 全球购物
应届专科生个人的自我评价
2014/01/05 职场文书
小松树教学反思
2014/02/11 职场文书
工程技术员岗位职责
2014/03/02 职场文书
社区活动总结报告
2014/05/05 职场文书
家长会标语
2014/06/24 职场文书
报到证办理个人委托书
2014/10/06 职场文书
夫妻房产协议书的格式
2014/10/11 职场文书
党校学习个人总结
2015/02/15 职场文书
辛亥革命观后感
2015/06/02 职场文书
2016年国庆节宣传标语
2015/11/25 职场文书
详解python的异常捕获
2022/03/03 Python