网页爬虫 - 利用python提取网页中的随机验证码
怪我咯
怪我咯 2017-04-17 15:55:29
[Python讨论组]

初学python,自己写了一个脚本来模拟登陆学校的教务系统,但是教务系统要求输入验证码,审查元素后发现该验证码的链接导向的图片每次访问都不同,我在写出的脚本中忽略了这个问题,结果返回的页面显示验证码错误,不知该如何解决这个问题,谢谢

我刚才想了一下,我的问题核心是我无法获取验证码图片,因为这个图片的来源页是随机显示图片的。是我获取图片的方法错了吗?

怪我咯
怪我咯

走同样的路,发现不同的人生

全部回复(5)
PHP中文网

后面那个随机字符串是无效的,为了防止浏览器缓存才存在的一种解决方法。

验证码图片链接直接就是

http://xxx.xxx/randomImage.do
高洛峰

就像楼上所说的那样,重要的是携带cookie。实现你所要的功能主要这样几个步骤
1、设置脚本cookie,Python中可以使用cookielib
2、第一次访问你要登录的页面,并获取当前页面的cookie
3、携带这个cookie对你的link进行请求,并下载该验证码,其实就是将字节流保存到文件中(不谈智能识别)
4、将用户名密码以及验证码并携带cookie向登录url发送请求。

迷茫

第一次请求时候拿到页面源码,不管验证码链接如何随机都可以直接解析出来。
重点:请求验证码后一定要维持这个session,否则再次提交表单进行登录的时候是无法正确校验验证码的。
验证码虽然随机出现,但是总会有一个正确的值和当前session绑定的,注意session维持

ringa_lee

建议使用requests

会话对象让你能够跨请求保持某些参数。它也会在同一个Session实例发出的所有请求之间保持cookies。

PHP中文网

你需要OCR来识别图片中的文本,试试tesseract-ocr或者其他的吧

热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板
关于我们 免责申明 举报中心 意见反馈 讲师合作 广告合作 最新更新 English
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送
PHP中文网APP
随时随地碎片化学习

Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号