爬虫抓取百度指数思路总结

百度指数抓取思路

 

浏览器截图+OCR识别,因为百度指数的数值是采用html格式+加密二进制传输,怎么都是需要OCR的。

 

浏览器截图:截取百度指数位置的子图片,截整个页面的图比较容易,要获取指数所在的span的位置,直接调用html的元素的getSizegetLocation返回都是0,简单粗暴地用硬编码了。

 

OCR的时候,调用tesseract,识别数字,不需要安装额外的识别数据,直接调用tesseract test.png test.txt -l eng -psm 7 digits就可以把识别结果输出到文本文件。用ocr把数字识别出来

GooSeeker把图、css参数等等抓取下来,根据css的定位,把数字小图切下来,合一起交给ocr

 

百度指数在显示每个点的指数的时候,会发送请求,这个请求相关的参数需要根据前面页面的返回结果来查找,请求的结果也是HTML+加密图像数据,要识别还是需要OCR的。

 

1、首先得模拟登陆百度账号(用selenium+PhantomJS模拟登陆百度,获取cookie 

2、由于有该死的验证码,因此我们要绕过验证码,保存cookie模拟登陆(绕过万恶的验证码) 

3、然后模拟登陆以后,程序截取屏幕保存到本地图片。(屏幕截屏) 

4、读取本地图片。(读取图片) 

5、找到搜索指数所在区域,裁剪图片。(裁剪图片) 

6、下面就是进行图像识别,或者说验证码识别了。(去灰度化,二值化,图像识别)

 

把生成的折线图表整图截图,然后进行图表识别。

你可能感兴趣的:(爬虫抓取百度指数思路总结)