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

Python与SEO 思享 67浏览 0评论

我们知道搜狗站长平台提交验证网站一次只能提交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搜狗站长平台自动识别验证码

扩展阅读

python3报错’encoding’ is an invalid keyword argument for this function

今天碰到一个奇怪的问题,在读txt的时候,报错'encoding' is an invalid keyword argument for this function。于是网上找了一下,这是版本的问题,如果是python2.7版本就会报错。可问题是我用......

什么是ZWNBSP,怎么去除零宽度空白字符

之前转载了一篇获取百度下拉的文章《Python获取百度下拉关键词》今天在使用过程中,发现可以访问接口获取下拉词,但是使用requests请求获取的的却是{}。我再将字符直接写入接口,而非用形参又没有问题。最后无奈将请求的url变量打印,输出的地址也没......

python获取当前上网IP地址的几种方法

在python使用场景中,有时候需要获取当前网络IP来实现一些功能。那么,如何用python来实现这个功能呢?下面,来讲讲我是怎么实现的。 通过访问IP网站获取 之前我一直用的获取的IP网站是 http://httpbin.org/ip 但是,今晚发......

avatar
发表我的评论
取消评论

Hi,您需要填写昵称和邮箱!

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址