| |
|
开发:
C++知识库
Java知识库
JavaScript
Python
PHP知识库
人工智能
区块链
大数据
移动开发
嵌入式
开发工具
数据结构与算法
开发测试
游戏开发
网络协议
系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程 数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁 |
-> Python知识库 -> selenium+requests获取Post请求参数 -> 正文阅读 |
|
[Python知识库]selenium+requests获取Post请求参数 |
作者:recommend-item-box type_blog clearfix |
背景????????在日常爬虫中会遇到一些发送验证码的问题,这些验证码一般是出现在登录页面,针对这种情况我们一般的处理思路是发送一个请求来获取验证码,然后把识别到的验证码构造成请求参数。但是有些网页的验证码是实时刷新的,即每次发送一个request请求或者刷新界面的时候,验证码就会改变,例如http://zxgk.court.gov.cn/shixin/这个网址,每次刷新一次,验证码就会改变一次,这样的话就会产生一个问题,就是之前识别出的验证码出现失效问题,导致Post请求时出现失败。 ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? 验证码一般处理思路 ?为了解决以上问题,我们需要进行思路转换,即要保证识别的验证码是有效的,换句话来说就是不通过request请求来获取验证码图片。 思路????????????????为了解决以上问题,我们这里使用selenium和requests结合来实现验证码的请求识别,思路大致如下: ?????????????????????????????????????? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? 流程图 ?实例展示????????这里我们以中国执行信息公开网为例进行演示,首先是打开浏览器,并滚动屏幕到验证码处位置,然后截取屏幕,这里暂时命名为图片A
?然后就是获取使用selenium定位到验证码的element,获取其所在位置和大小,然后在图片A上进行裁剪,把裁剪到的验证码图片B保存到本地。 ?
?之后对裁剪下来的图片B进行验证码识别,这里使用的是超级鹰来进行识别,
最后就是构造请求参数来进行数据的获取,注意这里使用的是session.post来发送的请求,而不是requests.post,两者的区别参看另一篇博客session和requests的区别。
代码完成后,运行代码就可以看到返回的response数据。 ?后面还可以把数据保存到mysql中来进行存储,效果如下: ? ? ? ? ? |
|
|
上一篇文章 下一篇文章 查看所有文章 |
|
开发:
C++知识库
Java知识库
JavaScript
Python
PHP知识库
人工智能
区块链
大数据
移动开发
嵌入式
开发工具
数据结构与算法
开发测试
游戏开发
网络协议
系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程 数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁 |
360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 | -2024/11/15 10:27:53- |
|
网站联系: qq:121756557 email:121756557@qq.com IT数码 |