用图像识别做爬虫居然这么爽——上篇

欢迎关注哈希大数据微信公众号
引 言
最近闲来无事为了提高自己,到查试图抓取一些企业信息,可是发现在抓取其企业列表页时,看到的企业名称和实际抓到的不一样,网站对其进行了加密(今天又正常了),同样例如猫眼电影的电影票房信息也进行了加密处理。结合之前处理验证码的经验我在想能不能利用图像识别的方法抓取这些内容,因为一般网页上的内容都很规整,据我目前的测试Tesseract对规整数字的识别率已经达到95%以上,走通这个流程后不但可以实现对简单验证码的自动识别,而且爬取不同的网站不用去分析其加密函数了岂不快哉!本次分享是我的初步尝试,目前用的工具为:Python+Selenium+chrome+PIL+Tesseract-OCR**。

image

01 THE THINKING 思路介绍

这里采用了selenium驱动浏览器的方法进行数据采集,因为需要把对应标签保存为图片进行识别,所以只能采用模拟登陆的办法。这里用chrome浏览器后面会介绍为什么不采用phantomJS,PIL是用来进行图片预处理的,一般首相会进行二值化处理,进而进行锐化处理增强其对比度,这样对于字体颜色不深的图像识别可以提高其识别精度。这里的图像识别采用的是Tesseract-OCR这个软件,Tesseract的OCR引擎最先由HP实验室于1985年开始研发,至1995年时已经成为OCR业内最准确的三款识别引擎之一。然而,HP不久便决定放弃OCR业务,Tesseract也从此尘封。数年以后,HP意识到,与其将Tesseract束之高阁,不如贡献给开源软件业,让其重焕新生–2005年,Tesseract由美国内华达州信息技术研究所获得,并求诸于Google对 Tesseract进行改进、消除Bug、优化工作。

Tesseract目前已作为开源项目发布在Google Project,其项目主页在这里(https://code.google.com/p/tesseract-ocr/)查看。

02 THE INSTALL AND CONFIGURATION
Tesseract安装配置

以下是Windows环境下的安装配置过程:

第一步:下载安装包

根据https://github.com/tesseract-ocr/tesseract/wiki,找到64位的非官方安装包http://digi.bib.uni-mannheim.de/tesseract/tesseract-ocr-setup-4.00.00dev.exe,下载后直接安装即可,但是要记得你的安装目录,我们等会配置环境变量要用。

如果不是做英文的图文识别,还需要下载其他语言的识别包https://github.com/tesseract-ocr/tesseract/wiki/Data-Files

简体字识别包:https://raw.githubusercontent.com/tesseract-ocr/tessdata/4.00/chi_sim.traineddata

繁体字识别包:https://github.com/tesseract-ocr/tessdata/raw/4.0/chi_tra.traineddata

数字识别包:https://raw.githubusercontent.com/tesseract-ocr/tessdata/4.00/num.traineddata

下好的识别包需要放到安装目录Tesseract-OCR下的tessdata文件夹下,如下图所示:
image

第二步:安装

直接执行下载好的tesseract-ocr-setup-4.00.00dev.exe,下一步、下一步安装。

第三步:配置环境变量

注意:我的系统是win8.1,其他系统应该差不多,跟配置java变量一样

复制你的安装地址,我的是安装在E:\Program Files (x86)\Tesseract-OCR,界面如下:
image

复制安装路径“E:\Program Files (x86)\Tesseract-OCR”,进入“控制面板\系统和安全\系统”,点击“高级系统设置”进入系统属性,点击“环境变量”,然后新建两个环境变量,分别命名为:Tesseract-OCR和TESSDATA_PREFIX,值分别是:E:\Program Files (x86)\Tesseract-OCR ,E:\Program Files (x86)\Tesseract-OCR\tessdata;配置好了点击保存。新添加环境变量一般需要重启电脑后才能生效。
image

打开命令终端,输入:tesseract -v,可以看到版本信息,如下图:
image

如果报错可能是配置问题,请仔细检查,如不能解决请留言。安装配置完成可以在命令行中测试tesseract是否能识别成功,具体流程如下:

  1. 先将需要识别的图片保存到一个文件夹中,例如网页上的内容可以通过截图将需要分别的内容保存为图片;

  2. 可在命令行窗口中打开存储图片的文件夹;

  3. 在命令行中输入:

tesseract <图片名称如:1.png> <保存文件名称如:1(此时识别出的内容会保存在1.txt文件内)> -l <识别包名称如:num/eng/chi_sim,若干识别的内容中存在数字和英文可以用:num+eng,其他情况与此相似>,举例如下:

image

解析的图片识别结果如下图所示:

image

&

image

通过这个案例我们发现我们能准确识别其内容!!

©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 158,736评论 4 362
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 67,167评论 1 291
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 108,442评论 0 243
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 43,902评论 0 204
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 52,302评论 3 287
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 40,573评论 1 216
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 31,847评论 2 312
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 30,562评论 0 197
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 34,260评论 1 241
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 30,531评论 2 245
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 32,021评论 1 258
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 28,367评论 2 253
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 33,016评论 3 235
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 26,068评论 0 8
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 26,827评论 0 194
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 35,610评论 2 274
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 35,514评论 2 269

推荐阅读更多精彩内容