利用Python破解简单的验证码

前一段时间爬取一些网页数据需要获取其的验证码,然后拼接url获取数据。然后通过看其验证码形式,就是一些简单的字母加数字,然后加燥的验证码。然后网上百度了一下,Python可以做一些简单的验证码破解。具体操作如下:

一:windows安装相应的包:

            1.先安装Pillow:pip  install Pillow

            2.安装tesseract-ocr:安装的下载地址:https://ask.hellobi.com/blog/tangyudi/(引用的链接地址)

           3.安装pytesseract: pip install pytesseract

二:环境配置,及修改pytesseract.py文件:

            1.安装上面的包时,必须配置其的环境变量。

             2.修改pytesseract.py的:

              tesseract_cmd=r'C:\Program Files (x86)\Tesseract-OCR\tesseract.exe'

三:在centos安装相应包:

   请根据这个链接进行安装:http://blog.csdn.net/diandianxiyu_geek/article/details/50522582(引用的网址)

四代码如下:

# -*- coding:utf-8 -*-
import sys
reload (sys)
sys.setdefaultencoding( 'utf-8' )
import urllib
from PIL import Image,ImageEnhance
import pytesseract
import requests
import time
import re
from lxml import etree
from PublicCode import search_config
# 破解验证码
t = int ( round (time.time()* 1000 ))

def get_guid(t, second_header ):
url= 'http://cri.gz.gov.cn/Search/NewGuid?t=%s' %t
result =requests.get(url,search_config.second_header)
return result.content
def get_image(guid):
url= 'http://cri.gz.gov.cn/Search/ValidateCode?t=1517210875615&guid=%s' %guid

res = requests.get(url)
with open ( '1.jpg' , "wb" ) as f:
f.write(res.content)
res = Image.open( '1.jpg' )

return res
threshold = 150
table = []
for i in range ( 256 ):
if i < threshold:
table.append( 0 )
else :
table.append( 1 )
def getverify1(name):
im = Image.open(name)
imgry = im.convert( 'L' )
imgry.save( 'g' + name)
out = imgry.point(table, '1' )
out.save( 'b' + name)
string = '--tessdata-dir "C: \\ Program Files (x86) \\ Tesseract-OCR \\ tessdata"'
im = Image.open( 'b1.jpg' )
enhancer = ImageEnhance.Contrast(im)
im = enhancer.enhance( 6 )
text = pytesseract.image_to_string(im, config =string)
text = text.strip( '' )
text = text.upper();

return text
def main():
guid = get_guid(t, search_config.second_header)
get_image(guid)
date = getverify1( '1.jpg' )
return guid,date

    



 



          

          

             

 
 

      







猜你喜欢

转载自blog.csdn.net/xxy_yang/article/details/79442993