前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >爬取微信公众号所有历史文章 - (03) python结合tesseract-ocr做图文识别

爬取微信公众号所有历史文章 - (03) python结合tesseract-ocr做图文识别

作者头像
efonfighting
修改2019-09-03 13:16:54
1.4K0
修改2019-09-03 13:16:54
举报
文章被收录于专栏:一番码客一番码客

一番码客 : efonfighting.imwork.net

挖掘你关心的亮点。

前面我们讲到了adb的封装,里面具体讲到到了在一副图片中寻找目标的坐标并点击。这篇文章我们讲讲对一副图片的特定区域做截取,并利用开源库做图纹识别。

要实现这个步骤的原因是,最初想实现爬取微信公众号历史文章这个功能时,一番没有抓包爬虫经验,于是为了获取历史文章的标题用于pdf打印时的命名,一番想到截图后对图片做图文识别,然后点击文章标题,进入到文章阅读界面然后结合目标图片识别“复制链接”来获取到文章的链接。

1 安装 tesseract-ocr

tesserat是一个开源的文字识别引擎,目前已经开发到4.0版本,训练支持了100+种的语言了。这里安装以ubunut18.04为例。

安装分为两部分:

  1. 安装引擎 对于ubuntu18.04来说安装很简单,两条命令搞定:

sudo apt install tesseract-ocr sudo apt install libtesseract-dev

  1. 安装需要识别语言的现有训练库: 安装简体中文的识别库:

sudo apt install tesseract-ocr-chi-sim

如果是英文识别库:

sudo apt install tesseract-ocr-eng

如果是windows,下载对应的32位或64位安装包,然后将下载的语言识别库“xxx.traineddata”放到安装目录(比如C:\Program Files\Tesseract-OCR\tessdata)下。

对于mac或者其他版本linux系统的安装方式,当然包括windows详细安装教程,请参考tesseract-ocr官方github的wiki(当然是英文的啦)。

后台回复关键字 “ tesseract-ocr ” 获取官方工程github地址和windows安装包、语言包。

安装完成之后你发现就可以用tesseract命令啦。

2 python结合pytesseract做图文识别

首先确保安装了python pytesseract包,

  • pycharm 请在setting里安装。
  • 终端安装直接 "pip3 install pytesseract"。

接下来就可以直接通过python调用pytesseract的接口做图文识别啦。下面以一幅手机屏幕截图为例。

  1. 这里标定每篇文章题目的范围,如图红框。
  2. test代码: def test(): from PIL import Image import pytesseract import matplotlib.pyplot as plt #读取图片,并截取其中的一部分 img = Image.open("/home/soy/Desktop/一番码客.jpg") grey = img.convert('L') # 只留取亮度信息,转换为黑白色,有利于文字识别 cutPic = grey.crop((25, 270, 690, 540)) # 上图红框里的范围(x1,y1,x2,y2) #这里为了将所有非白色的像素点转换为纯黑色,有利于增高文字的锐度、清晰度。 xSize = cutPic.size[0] ySize = cutPic.size[1] for y in range(ySize): for x in range(xSize): if(cutPic.getpixel((x,y)) != 255): cutPic.putpixel((x,y),0) #展示处理后的图像 plt.imshow(cutPic) plt.show() #图文识别 itemStr = pytesseract.image_to_string((cutPic), lang='chi_sim').replace(' ', '') print(itemStr) #文字拼接处理 itemStrList = itemStr.split('\n',8) dateStr = itemStrList[len(itemStrList)-1] topicStr = '' for idx in range (len(itemStrList)-1): topicStr += itemStrList[idx] #处理后的文字 print(dateStr+'_'+topicStr)
  3. 处理后图片:
  1. 识别结果:

3 结语

怎么样,用python做图文识别是不是超简单?这就是python的魅力所在啊。

那么获取每篇文章的思路就是:

  1. 通过OCR获取最上面一篇的文章标题;
  2. 点击进去,通过图像目标查找,点击“复制文章链接”按钮,并将链接传回PC保存;
  3. 返回,向下滑动页面刚好一栏标题,重复1。
  4. 通关!
本文参与 腾讯云自媒体分享计划,分享自微信公众号。
原始发表:2019-04-19,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 一番码客 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
相关产品与服务
AI 应用产品
文字识别(Optical Character Recognition,OCR)基于腾讯优图实验室的深度学习技术,将图片上的文字内容,智能识别成为可编辑的文本。OCR 支持身份证、名片等卡证类和票据类的印刷体识别,也支持运单等手写体识别,支持提供定制化服务,可以有效地代替人工录入信息。
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档