首页 > python 如何下载验证码图片?

python 如何下载验证码图片?

比如说网易邮箱注册页面
http://reg.email.163.com/unireg/call.do?cmd=register.entrance&from=163mail_right

我想要下载验证码图片然后用 ORC 识别,但是识别出来的验证码好像和服务器后端的不一样

<img id="mVcodeImg" class="vCode" width="120" height="50" alt="验证码" src="/unireg/call.do?cmd=register.verifyCode&v=common/verifycode/vc_en&vt=mobile_acode&t=1457058837406" style="cursor:pointer;">页面源代码这里 t=1457058837406 好像是动态的,
那么请问怎样才能正确下载到和服务器一致的验证码图片呢?


带cookie


首先这个东西不能看静态源代码来下载的,需要模拟请求。那个t其实就是当时的时间,通过模拟发送请求,这样就可以把图片下载下来,如下:

#!/usr/bin/env python
# encoding: utf-8

import urllib2
import urllib
import time


def down_pic():
    url ='http://reg.email.163.com/unireg/call.do?'

    para= { #构造请求参数
        'cmd': 'register.verifyCode',
        'v': 'common/verifycode/vc_en',
        'vt': 'mobile_acode',
        't': int(time.time())
    }
    encode_url = url + urllib.urlencode(para)
    req = urllib2.Request(encode_url)
    data = urllib2.urlopen(req).read()
    pic = file('very.jpg', 'wb')
    pic.write(data)
    pic.close()


if __name__ == '__main__':
    down_pic()

大致这样子了,可以在当前目录下,看到一个图片文件,如果不想每次都保存的话,可以使用tempfile,程序结束会删除掉验证码图片。可以多看看爬虫方面的东西


你想说的是ocr吧,这种图片进行机器学习的成本还是比较高的。

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