Python 爬虫简单验证码识别和抓包

2020-02-13 14:28:01 浏览数 (1)

  • OCR 即Optical Character Recognition, 光学字符识别,是指通过扫描字符,然后通过其形状将其翻译成电子文本的过程。
  • tesserocr 是Python的一个OCR识别库。GitHub:https://github.com/tesseract-ocr/tesseract

1 软件安装:

  • 注意:在安装tesserocr前都需要先安装tesseract,具体说明如下:
代码语言:javascript复制
pip install tesserocr #安装tesserocr

pip install pillow # 图片处理目录

注意:

在mac下安装tesserocr ,需要先安装下面的软件
brew install tesseract --all-languages
brew install imagemagick

在:Ubuntu、Debian 系统下先安装:
sudo apt-get intall -y tesseract-ocr libtesseract-dev libleptonica-dev
在:CentOS、Red Hat 系统:
yum install -y tesseract

在windows安装tesserocr前要先安装:tesseract 他是为tesserocr提供支持的
下载目录:https://digi.bib.uni-mannheim.de/tesseract/ 会有很多下载文件,下载一个3.0版本的exe文件即可
在安装中要勾选上Additional language data(download)选项来安装OCR识别支持的语言包

2 具体使用:

  • 简单识别验证码
代码语言:javascript复制
#验证识别测试
import tesserocr
from PIL import Image

#打开图片
image = Image.open("./code/5.png")

#识别验证码
result = tesserocr.image_to_text(image)

print(result)

进一步优化

  • 验证码的深度处理,如转灰度、二值化等操作
代码语言:javascript复制
#验证识别测试
import tesserocr
from PIL import Image

image = Image.open("./code/5.png")
#将图片转化为灰度图像
image = image.convert("L")
threshold = 127
table=[]
for i in range(256):
    if i < threshold:
        table.append(0)
    else:
        table.append(1)
image = image.point(table,'1')
#识别验证码
result = tesserocr.image_to_text(image)

print(result)
Fiddler抓包工具:
  • Fiddler(中文名称:小提琴)是一个HTTP的调试代理,以代理服务器的方式,监听系统的Http网络数据流动
  • Fiddler是一个http协议调试代理工具,它能够记录并检查所有你的电脑和互联网之间的http通讯,设置断点,查看所有的“进出”Fiddler的数据(指cookie,html,js,css等文件,这些都可以让你胡乱修改的意思)。
  • Fiddler 要比其他的网络调试器要更加简单,因为它不仅仅暴露http通讯还提供了一个用户友好的格式。
  • 官方网址:https://www.telerik.com/fiddler
  • 文档地址:http://docs.telerik.com/fiddler/configure-fiddler/tasks/configurefiddler
  • 运行过程:

(本图来自互联网)

  • 操作界面:
(本图来自互联网)
2. Fiddler配置过程:
  • 安装好后打开fiddler→选择 Tools >Fildder Options > Https

(本图来自互联网)

  • https 勾选下列选项

(本图来自互联网)

  • Connection勾选允许远程连接

(本图来自互联网)

  • 设置完成后点击下面的【OK】按钮保存

(本图来自互联网)

  • 我们在刚开始进入Fildder的界面上,使用手机或者电脑网上冲浪就可以看到我们的http请求了。

END

0 人点赞