前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >解决爬虫模拟登录时验证码图片拉取提交问题的两种方式

解决爬虫模拟登录时验证码图片拉取提交问题的两种方式

作者头像
十四君
发布2019-11-24 16:40:14
1.4K0
发布2019-11-24 16:40:14
举报
文章被收录于专栏:Urlteam

当爬虫在模拟登录的时候,主流采用2种手法,模拟浏览器操作和协议破解。都会遇到的问题是,验证码的答案即使是通CNN或者OCR或者打码平台获得,如何提交呢?恐怕不少同学会说,提交还用说?

因为验证码的图片,往往再次请求会是不同的图片,如何将验证码与当前登录流程绑定呢?

目前主流有3种方法

一:采用模拟浏览器登录;

1:最直观的解决思路,截图打码提交

加载完毕网页后,单独截取当前网页的截图,明知验证码位置,截图该验证码位置image模块可以解决,提交打码平台或者各种模块识别后,填写。

优点自然是直观,缺点就是模拟登录比较慢,截图也繁琐

2:采用cookie获取验证码图

获取当前网页的cookie,携带cookie再次请求验证码图片采用requests模块,类似刷新下一张验证码,这时候,虽网页中的验证码图片没有变化,但是服务器端已经认为这个cookie对应的访客使用下一个验证码图片了,这样节省了一个截图的过程。

二:采用协议破解

所谓协议破解指通过理解他js发出登录请求的详细参数,伪造这些参数去完成登录,只需要requests之类请求发出,因此速度可以非常快,这样一来,如何标志前后请求是同一个访客发出的呢?有的网站给初始init页面一个唯一token,让后续请求都带同一个token就是同一个访客,也有用cookie来标志前后请求。

1:cookie标记,将请求index首页的cookie保存,带着cookie去请求验证码图片,再将带着cookie的答案连同登录参数一起发出。

2:绕过首页cookie,有时候也是可以的,比如12306.只用cookie直接取验证码就可以了,不用拿首页cookie

3:通过会话session,这样的请求会自动连接前后的cookie

原创文章,转载请注明: 转载自URl-team

本文链接地址: 解决爬虫模拟登录时验证码图片拉取提交问题的两种方式

本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2018-09-152,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
相关产品与服务
验证码
腾讯云新一代行为验证码(Captcha),基于十道安全栅栏, 为网页、App、小程序开发者打造立体、全面的人机验证。最大程度保护注册登录、活动秒杀、点赞发帖、数据保护等各大场景下业务安全的同时,提供更精细化的用户体验。
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档