python爬虫 - Python怎么获取HTML里的图片,并且显示出来
ringa_lee
ringa_lee 2017-04-17 13:51:38
[Python讨论组]

我在爬一个页面,需要输入验证码。于是,我想抓下图片,然后显示之后,手动输入。

之前,是这种方法:http://stackoverflow.com/questions/7391945/how-do-i-read-image-data-from-a-url-in-python
但是发现,这样需要再次请求图片,所以图片会再次刷新,因此总是返回验证码错误。

ringa_lee
ringa_lee

ringa_lee

全部回复(4)
阿神

我在不同场合说过无数遍一个观点,如果你想学习怎么爬一个网页,去学学怎么写网页。

那我们来看看验证码是怎么工作的。
当你打开一个页面,它会显示一个验证码图片,你输入验证码,提交。
而服务器需要知道,它给你展示的是哪张验证码,然后才能验证对不对。
我们知道HTTP是无状态的,它发送请求给你之后就结束了,它要怎么知道“以前”给你的验证码是什么?

太多前置基础知识,直接说结论吧。
方式一:验证码会给你写一个cookie,你输入验证码的提交时候就带有这个cookie,这样服务器就知道你看到的是哪个验证码,然后验证。
方式二:提交时带一个隐藏表单,带着哪张验证码信息。

好现在你知道了,关键有两点:
1、你提交了正确的验证码
2、你得告诉服务器你看到了哪张验证码

ringa_lee

再次请求不是问题的关键
注意 cookies

怪我咯

pytesser包可以用来处理简单的验证码图片,image_to_string得到验证码,同时提交即可

巴扎黑

如果你仅仅是想获取验证码自动填写,不需要这么复杂,获取cookie就行

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

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