比如说网易邮箱注册页面
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吧,这种图片进行机器学习的成本还是比较高的。