首页 > Python怎么获取HTML里的图片,并且显示出来

Python怎么获取HTML里的图片,并且显示出来

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

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


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


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


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

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

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

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


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

【热门文章】
【热门文章】