浅析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中的函数用法入门教程
Sep 02 Python
Python的Flask开发框架简单上手笔记
Nov 16 Python
用yum安装MySQLdb模块的步骤方法
Dec 15 Python
python3利用smtplib通过qq邮箱发送邮件方法示例
Dec 03 Python
对Python 窗体(tkinter)文本编辑器(Text)详解
Oct 11 Python
Python解决两个整数相除只得到整数部分的实例
Nov 10 Python
python matplotlib 画dataframe的时间序列图实例
Nov 20 Python
Django生成PDF文档显示网页上以及PDF中文显示乱码的解决方法
Dec 17 Python
浅谈tensorflow中张量的提取值和赋值
Jan 19 Python
Python坐标轴操作及设置代码实例
Jun 04 Python
python实现双人五子棋(终端版)
Dec 30 Python
用Python selenium实现淘宝抢单机器人
Jun 18 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
phpMyAdmin下载、安装和使用入门教程
2007/05/31 PHP
sourcesafe管理phpproj文件的补充说明(downmoon)
2009/04/11 PHP
深入php内核之php in array
2015/11/10 PHP
php5与php7的区别点总结
2019/10/11 PHP
如何做到打开一个页面,过几分钟自动转到另一页面
2007/04/20 Javascript
js表数据排序 sort table data
2009/02/18 Javascript
javascript之通用简单的table选项卡实现(二)
2010/05/09 Javascript
js post方式传递提交的实现代码
2010/05/31 Javascript
关于JS中的闭包浅谈
2013/08/23 Javascript
js setTimeout opener的用法示例详解
2013/10/23 Javascript
a标签click和href执行顺序探讨
2014/06/23 Javascript
推荐JavaScript实现继承的最佳方式
2014/11/11 Javascript
解决bootstrap中modal遇到Esc键无法关闭页面
2015/03/09 Javascript
uploadify多文件上传参数设置技巧
2015/11/16 Javascript
不同js异步函数同步的实现方法
2016/05/28 Javascript
JavaScript Ajax实现异步通信
2016/12/14 Javascript
nodejs实现聊天机器人功能
2019/09/19 NodeJs
js消除图片小游戏代码
2019/12/11 Javascript
在pycharm中开发vue的方法步骤
2020/03/04 Javascript
[53:10]2018DOTA2亚洲邀请赛 4.6 淘汰赛 VP vs VG 第一场
2018/04/11 DOTA
详解django中Template语言
2020/02/22 Python
Python itertools.product方法代码实例
2020/03/27 Python
Python脚本实现监听服务器的思路代码详解
2020/05/28 Python
Python用类实现扑克牌发牌的示例代码
2020/06/01 Python
Python如何给函数库增加日志功能
2020/08/04 Python
python爬虫利器之requests库的用法(超全面的爬取网页案例)
2020/12/17 Python
浅谈matplotlib默认字体设置探索
2021/02/03 Python
经济学人订阅:The Economist
2018/07/19 全球购物
Laura官网:加拿大女性的顶级时尚目的地
2019/09/20 全球购物
实习生的自我鉴定范文欣赏
2013/11/20 职场文书
关于环保的建议书400字
2014/03/12 职场文书
大学生暑期实践报告之企业经营管理
2019/08/08 职场文书
python周期任务调度工具Schedule使用详解
2021/11/23 Python
TypeScript 使用 Tuple Union 声明函数重载
2022/04/07 Javascript
V Rising 服务器搭建图文教程
2022/06/16 Servers
CSS子盒子水平和垂直居中的五种方法
2022/07/23 HTML / CSS