天天看点

下载验证码并保存

1、使用requests去下载验证码并保存在本地的方法。

# -*- coding: UTF-8 -*-
import random
import requests
from contextlib import closing
import time
headers={
'Accept': 'image/gif, image/jpeg, image/pjpeg, application/x-ms-application, application/xaml+xml, application/x-ms-xbap, */*',
'Cookie': '_gscu_1049835508=88254391xh6jjo12; _gscbrs_1049835508=1; Hm_lvt_9e03c161142422698f5b0d82bf699727=1488254392; Hm_lpvt_9e03c161142422698f5b0d82bf699727=1488254801; JSESSIONID=CFB1AAAD0EDF74A45EAF0D9F57AD6FDA',
'Accept-Language': 'zh-CN',
'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; WOW64; Trident/7.0; rv:11.0; UBrowser/6.0.1471.813) like Gecko',
'Accept-Encoding': 'gzip, deflate',
'Host': 'shixin.court.gov.cn',
'Connection': 'Keep-Alive'

}
path='C:\\Users\\Administrator\\Desktop\\rainbow\\'
url='http://shixin.court.gov.cn/captchaNew.do?captchaId=fac8fc397e624fb4a9286f19fcb19efd&random=0.7611455792023014.jpg'
response=requests.get(url,headers=headers,stream=True)
print '测试成功'
for i in range(20000):
    time.sleep(2)
    with closing(requests.get(url,headers=headers,stream=True)) as response:
        with open(path+str(i)+'.tif','wb') as fd:
            for chunk in response.iter_content(128):
                fd.write(chunk)      

 如果不需要保存的话,直接打开请求得到的图片:

import requests
from PIL import Image
from StringIO import StringIO      
session = requests.Session()
 image = session.get(code_url, headers=headers, stream=True, verify=False)
 i = Image.open(StringIO(image.content))
 #直接打开
i.show()
#进行ocr识别
string_code = pytesseract.image_to_string(i)
print(string_code)