浅析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 相关文章推荐
Python3实现从指定路径查找文件的方法
May 22 Python
python通过文件头判断文件类型
Oct 30 Python
python使用tornado实现简单爬虫
Jul 28 Python
教你利用Python玩转histogram直方图的五种方法
Jul 30 Python
Selenium定位元素操作示例
Aug 10 Python
解决Python运行文件出现out of memory框的问题
Dec 03 Python
python3实现网络爬虫之BeautifulSoup使用详解
Dec 19 Python
python如何以表格形式打印输出的方法示例
Jun 21 Python
Python读取xlsx文件的实现方法
Jul 04 Python
Python 通过微信控制实现app定位发送到个人服务器再转发微信服务器接收位置信息
Aug 05 Python
Python Django搭建网站流程图解
Jun 13 Python
python脚本和网页有何区别
Jul 02 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
国王的咖啡这么大来头,名字的由来是什么
2021/03/03 咖啡文化
基于PHP开发中的安全防范知识详解
2013/06/06 PHP
基于PHP读取csv文件内容的详解
2013/06/18 PHP
体育彩票排列三组选三算法分享
2014/03/07 PHP
php模仿asp Application对象在线人数统计实现方法
2015/01/04 PHP
通过php修改xml文档内容的方法
2015/01/23 PHP
PHP验证终端类型是否为手机的简单实例
2017/02/07 PHP
对于Laravel 5.5核心架构的深入理解
2018/02/22 PHP
laravel validate 设置为中文的例子(验证提示为中文)
2019/09/29 PHP
js同时按下两个方向键
2007/12/01 Javascript
javascript 动态修改样式和层叠样式表代码
2010/04/27 Javascript
选择器中含有空格在使用示例及注意事项
2013/07/31 Javascript
css结合js制作下拉菜单示例代码
2014/02/27 Javascript
Node.js中AES加密和其它语言不一致问题解决办法
2014/03/10 Javascript
谈谈jQuery Ajax用法详解
2015/11/27 Javascript
JS表单验证的代码(常用)
2016/04/08 Javascript
javascript表单控件实例讲解
2016/09/13 Javascript
javascript+jQuery实现360开机时间显示效果
2017/11/03 jQuery
使用 Node.js 开发资讯爬虫流程
2018/01/07 Javascript
ES6下子组件调用父组件的方法(推荐)
2018/02/23 Javascript
vue页面跳转实现页面缓存操作
2020/07/22 Javascript
Python 关于反射和类的特殊成员方法
2017/09/14 Python
Python虚拟环境项目实例
2017/11/20 Python
《与孩子一起学编程》python自测题
2018/05/27 Python
opencv python 图像去噪的实现方法
2018/08/31 Python
在python中使用xlrd获取合并单元格的方法
2018/12/26 Python
python实现的发邮件功能示例
2019/09/11 Python
python框架flask表单实现详解
2019/11/04 Python
python如何调用字典的key
2020/05/25 Python
雷朋巴西官方商店:Ray-Ban Brasil
2020/07/21 全球购物
GWebs公司笔试题
2012/05/04 面试题
销售员岗位职责范本
2014/02/03 职场文书
护士求职信范文
2014/05/24 职场文书
五四青年节演讲稿
2014/05/26 职场文书
先进党组织事迹材料
2014/12/26 职场文书
朋友聚会开场白
2015/06/01 职场文书