以下代码,如有不懂加群讨论
# *-* coding:utf-8 *-* #
import json
import requests
import pytesseract
import time
import datetime
from PIL import Image
from bs4 import BeautifulSoup
import urllib3
import random
import os def binarizing(img, threshold):
# input: gray image, get black and white images
pixdata = img.load()
w, h = img.size
for y in range(h):
for x in range(w):
if pixdata[x, y] < threshold:
pixdata[x, y] = 0
else:
pixdata[x, y] = 255
return img def depoint(img):
# input: gray image, remove the noise
pixdata = img.load()
w, h = img.size
for x in range(1, w - 1):
if x > 1 and x != w - 2:
# 获取目标像素点左右位置
left = x - 1
right = x + 1 for y in range(1, h - 1):
# 获取目标像素点上下位置
up = y - 1
down = y + 1 if x <= 2 or x >= (w - 2):
img.putpixel((x, y), 255) elif y <= 2 or y >= (h - 2):
img.putpixel((x, y), 255) elif img.getpixel((x, y)) == 0:
if y > 1 and y != h - 1: # 以目标像素点为中心点,获取周围像素点颜色
# 0为黑色,255为白色
up_color = img.getpixel((x, up))
down_color = img.getpixel((x, down))
left_color = img.getpixel((left, y))
left_down_color = img.getpixel((left, down))
right_color = img.getpixel((right, y))
right_up_color = img.getpixel((right, up))
right_down_color = img.getpixel((right, down))
# 去除竖线干扰线
if down_color == 0:
if left_color == 255 and left_down_color == 255 and \
right_color == 255 and right_down_color == 255:
img.putpixel((x, y), 255) # 去除横线干扰线 elif right_color == 0:
if down_color == 255 and right_down_color == 255 and \
up_color == 255 and right_up_color == 255:
img.putpixel((x, y), 255) # 去除斜线干扰线
if left_color == 255 and right_color == 255 \
and up_color == 255 and down_color == 255:
img.putpixel((x, y), 255) return img def get_code():
'''
下载验证码并pytesseract 识别验证码
:return:
'''
code_file = '1.jpg'
image = Image.open(code_file)
image.show()
#text = input('请输入验证码:')
image = image.convert("L")
binarizing(image, 110)
depoint(image)
image.show() text = pytesseract.image_to_string(image)
return text def get_xsrf():
code = get_code()
print (code) if __name__ == '__main__':
get_xsrf()

												

pytesseract 验证码识别的更多相关文章

  1. Python之selenium+pytesseract 实现识别验证码自动化登录脚本

    今天写自己的爆破靶场WP时候,遇到有验证码的网站除了使用pkav的工具我们同样可以通过py强大的第三方库来实现识别验证码+后台登录爆破,这里做个笔记~~~ 0x01关于selenium seleniu ...

  2. python3使用pytesseract进行验证码识别

    pytesseract介绍 1.Python-tesseract是一个基于google's Tesseract-OCR的独立封装包: 2.Python-tesseract功能是识别图片文件中文字,并作 ...

  3. Selenium&Pytesseract模拟登录+验证码识别

    验证码是爬虫需要解决的问题,因为很多网站的数据是需要登录成功后才可以获取的. 验证码识别,即图片识别,很多人都有误区,觉得这是爬虫方面的知识,其实是不对的. 验证码识别涉及到的知识:人工智能,模式识别 ...

  4. Selenium&Pytesseract模拟登录+验证码识别

    验证码是爬虫需要解决的问题,因为很多网站的数据是需要登录成功后才可以获取的. 验证码识别,即图片识别,很多人都有误区,觉得这是爬虫方面的知识,其实是不对的. 验证码识别涉及到的知识:人工智能,模式识别 ...

  5. Python 3.6 版本-使用Pytesseract 模块进行图像验证码识别

    环境: (1) win7 64位 (2) Idea (3) python 3.6 (4) pip install pillow <&nbsp>pip install pytesse ...

  6. python验证码识别

    关于利用python进行验证码识别的一些想法 用python加“验证码”为关键词在baidu里搜一下,可以找到很多关于验证码识别的文章.我大体看了一下,主要方法有几类:一类是通过对图片进行处 理,然后 ...

  7. python识别验证码——一般的数字加字母验证码识别

    1.验证码的识别是有针对性的,不同的系统.应用的验证码区别有大有小,只要处理好图片,利用好pytesseract,一般的验证码都可以识别 2.我在识别验证码的路上走了很多弯路,重点应该放在怎么把图片处 ...

  8. python验证码识别接口及识别思路代码

    1,验证码识别接口代码 import json import base64 import requests def shibie(): data = {} path = "./img/&qu ...

  9. Python图像处理之验证码识别

      在上一篇博客Python图像处理之图片文字识别(OCR)中我们介绍了在Python中如何利用Tesseract软件来识别图片中的英文与中文,本文将具体介绍如何在Python中利用Tesseract ...

随机推荐

  1. 常见的Java面试题及答案整理

    1. 基础篇 1. 面向对象特征:封装,继承,多态和抽象 封装封装给对象提供了隐藏内部特性和行为的能力.对象提供一些能被其他对象访问的方法来改变它内部的数据.在 Java 当中,有 3 种修饰符: p ...

  2. java扫描文件夹下面的所有文件(递归与非递归实现)

    java中扫描指定文件夹下面的所有文件扫描一个文件夹下面的所有文件,因为文件夹的层数没有限制可能多达几十层几百层,通常会采用两种方式来遍历指定文件夹下面的所有文件.递归方式非递归方式(采用队列或者栈实 ...

  3. android状态栏和NavigationBar的动态控制显示

    项目在开发阅读器,阅读器对阅读界面的要求就是在工具栏不显示的状态下,ActionBar和NavigationBar都是不显示的,当工具栏显示时它们都出来,这就需要动态控制它们的显示与隐藏. 第一阶段: ...

  4. Python + Selenium WebDriver Api 知识回顾

    一直再用 Selenium WebDriver 但是用的都比较零散,也没有做过总结,今天借此机会,整理一下,方便大家使用时查阅 webDriver  的属性 ['CONTEXT_CHROME', 'C ...

  5. ChIP-seq实战 | 染色质免疫共沉淀技术 | ATAC-seq | 染色质开放性测序技术

    参考:生信技能树 ChIP-Seq综述 一些简单的copy,纯属个人笔记. ChIP-seq的原理 用于在全基因组范围中研究DNA结合蛋白(相互反应).组蛋白修饰(表观遗传标记)和核小体的技术,研究这 ...

  6. WCF 一步一步 发布 WCF服务 到 IIS (图)

    WCF 一步一步 发布 WCF服务 到 IIS (图) 使用VS自带的WCFSVCHost(WCF服务主机)发布WCF服务,时刻开发人员测试使用. 下面我们来看一下如何在IIS中部发布一个WCF服务. ...

  7. HDOJ 1023 Train Problem II

    考虑第1个火车出站的时刻,从1到n都有可能,如果它是第i个出栈,那么前面有规模为i-1的子问题,后面有规模为n-i的子问题.累加.

  8. 【洛谷p2142】高精度减法

    高精度减法第一遍没有过 高精度减法[传送门] 洛谷算法标签: 总之技术都在高精上了吧. 附代码: #include<iostream> #include<cstdio> #in ...

  9. Known Notation ZOJ - 3829 (后缀表达式,贪心)

    大意:给定后缀表达式, 每次操作可以添加一个字符, 可以交换两个字符的位置, 相邻数字可以看做一个整体也可以分开看, 求合法所需最少操作数. 数字个数一定为星号个数+1, 添加星号一定不会更优. 先判 ...

  10. 4月22 mysql常用函数

    一.数学函数 数学函数主要用于处理数字,包括整型.浮点数等. ABS(x) 返回x的绝对值 SELECT ABS(-1) -- 返回1 CEIL(x),CEILING(x) 返回大于或等于x的最小整数 ...