python+ddddocr搜狗站长平台自动识别验证码

Python与SEO 思享 271浏览

我们知道搜狗站长平台提交验证网站一次只能提交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库识别,成功率不高也不低,能够满足我的个人需求

推荐阅读

win10系统安装软件错误”The installer has encountered an unexpected error…error code is 2503″

在Windows10系统中,错误“安装程序在安装此软件包时遇到意外错误。这可能表明包装有问题。错误代码是2503。安装python3.8.9时报告了。安装程序在安装此软件包时遇到了意外错误。这可能表明行李有问题。...

python报错requests.exceptions.ConnectionError

http连接数超过了最大限制。默认情况下,连接是保持活动的,因此服务器保持太多的连接以至于无法创建新的连接。请求速度太快。...

python列表格式的字符串如何转换成PHP数组

转换成php数组 $str = '["seo "、" seo网站查询"、" seo网站优化"、" seo网站推广"、"广州seo "、"首尔是哪个城市"、" seo网站如何推广"、" seo全称"、" seo平台"、" seo术语解释"]';...