浅析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 ValueError: invalid literal for int() with base 10 实用解决方法
Jun 21 Python
Python3基于sax解析xml操作示例
May 22 Python
Numpy 将二维图像矩阵转换为一维向量的方法
Jun 05 Python
Python3 安装PyQt5及exe打包图文教程
Jan 08 Python
python 比较2张图片的相似度的方法示例
Dec 18 Python
深度学习入门之Pytorch 数据增强的实现
Feb 26 Python
Python实现自动打开电脑应用的示例代码
Apr 17 Python
pandas分批读取大数据集教程
Jun 06 Python
Python Matplotlib绘图基础知识代码解析
Aug 31 Python
python 怎样进行内存管理
Nov 10 Python
Python上下文管理器Content Manager
Jun 26 Python
Python实现排序方法常见的四种
Jul 15 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
ThinkPHP2.x防范XSS跨站攻击的方法
2015/09/25 PHP
PHP实现本地图片转base64格式并上传
2020/05/29 PHP
JavaScript 对象成员的可见性说明
2009/10/16 Javascript
jQuery版Tab标签切换
2011/03/16 Javascript
JavaScript中:表达式和语句的区别[译]
2012/09/17 Javascript
JS中的substring和substr函数的区别说明
2013/05/07 Javascript
js获取下拉列表框中的value和text的值示例代码
2014/01/11 Javascript
jquery map方法使用示例
2014/04/23 Javascript
详解JavaScript中Date.UTC()方法的使用
2015/06/12 Javascript
js轮播图透明度切换(带上下页和底部圆点切换)
2017/04/27 Javascript
Angular 1.x个人使用的经验小结
2017/07/19 Javascript
使用Vue-cli 3.0搭建Vue项目的方法
2018/06/07 Javascript
微信小程序实现文字跑马灯
2020/05/26 Javascript
[02:34]DOTA2英雄基础教程 幽鬼
2014/01/02 DOTA
Python greenlet实现原理和使用示例
2014/09/24 Python
python中使用mysql数据库详细介绍
2015/03/27 Python
Python 转义字符详细介绍
2017/03/21 Python
Python 多进程和数据传递的理解
2017/10/09 Python
python pandas模块基础学习详解
2019/07/03 Python
python2 中 unicode 和 str 之间的转换及与python3 str 的区别
2019/07/25 Python
使用OpenCV circle函数图像上画圆的示例代码
2019/12/27 Python
一文了解python 3 字符串格式化 F-string 用法
2020/03/04 Python
英国顶尖手表珠宝品牌独家授权经销商:HS Johnson
2020/10/28 全球购物
中药专业大学生医药工作求职信
2013/10/25 职场文书
机票销售员态度不好检讨书
2014/09/27 职场文书
五年级上册复习计划
2015/01/19 职场文书
男方婚礼答谢词
2015/01/20 职场文书
公司优秀员工推荐信
2015/03/24 职场文书
通知书大全
2015/04/27 职场文书
2015年环卫工作总结
2015/04/28 职场文书
运动会致辞稿
2015/07/29 职场文书
公司趣味运动会开幕词
2016/03/04 职场文书
MySQL中order by的使用详情
2021/11/17 MySQL
Spring this调用当前类方法无法拦截的示例代码
2022/03/20 Java/Android
Python if else条件语句形式详解
2022/03/24 Python
Python tensorflow卷积神经Inception V3网络结构
2022/05/06 Python