我们知道搜狗站长平台提交验证网站一次只能提交20条且需要输入验证码,非验证网站更是需要一条一个验证码的提交。这样有违解放双手的初衷,那么,我们该如何实现自动识别搜狗站长平台的验证码呢?
网上的方案其实有很多,我找到了一个能用的就没继续研究了,以下提供给大家参考:
代码
import requests
import ddddocr
from svglib.svglib import svg2rlg
from reportlab.graphics import renderPM
import time
session = requests.session()
headers = {"User-Agent": "Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/72.0.3626.81 Safari/537.36 SE 2.X MetaSr 1.0"}
code_url = "https://zhanzhang.sogou.com/api/user/generateVerifCode?timer=%d" % int(((time.time()) * 1000))
login_code = session.get(url=code_url, headers=headers, timeout=5)
with open('code.svg', 'wb')as f:
f.write(login_code.content)
pic = svg2rlg('./code.svg')
renderPM.drawToFile(pic, 'code.png')
ocr = ddddocr.DdddOcr()
with open('code.png', 'rb') as f:
img_bytes = f.read()
code = ocr.classification(img_bytes)
print(code)
搜狗站长平台的验证码是SVG格式的,所以需要转换成png,最后用ddddocr库识别,成功率不高也不低,能够满足我的个人需求
转载请注明:思享SEO博客 » python+ddddocr搜狗站长平台自动识别验证码