分类:python
作者:TTyb文章发表于 2016-11-12
百度指数抓取,再用图像识别得到指数前言:
土福曾说,百度指数很难抓,在淘宝上面是20块1个关键字:
哥那么叼的人怎么会被他吓到,于是乎花了零零碎碎加起来大约2天半搞定,在此鄙视一下土福
安装的库很多:
谷歌图像识别tesseract-ocr
pip3 install pillow
pip3 install pyocr
selenium2.45
Chrome47.0.2526.106 m or Firebox32.0.1
chromedriver.exe
图像识别验证码请参考我的博客:
python图像识别–验证码
selenium用法请参考我的博客:
python之selenium
进入百度指数需要登陆,登陆的账号密码写在文本account里面:
万能登陆代码如下:
登陆的页面:
登陆过后需要打开新的窗口,也就是打开百度指数,并且切换窗口,在selenium用:
清空输入框,构造点击天数:
天数也就是这里:
找到图形框:
图形框就是:
根据坐标点的不同构造偏移量:
选取7天的坐标来观察:
第一个点的横坐标为1031.66666
第二个点的横坐标为1234
所以7天两个坐标之间的差为:202.33,其他的天数类似
用selenium库来模拟鼠标滑动悬浮:
但是这样子确定的点指出是在这个位置:
也就是矩形的左上角,这里是不会加载js显示弹出框的,所以要给横坐标+1:
写个按照天数的循环,让横坐标累加:
鼠标横移时会弹出框,在网址里面找到这个框:
selenium自动识别之…:
并且确定这个框的大小位置:
截取的图形为:
下面的思路就是:
将整个屏幕截图下来
打开截图用上面得到的这个坐标rangle进行裁剪
但是最后裁剪出来的是上面的那个黑框,我想要的效果是:
本次更新加入了对于关键词长度的判断,能够自动识别关键词长度而进行截取:
找到位置:
后面的完整代码是:
但是后面发现裁剪的图片太小,识别精度太低,所以需要对图片进行扩大:
原图大小请右键->属性->详细信息查看,我的是长73像素,宽29像素
最后就是图像识别
最后效果图:
https://github.com/TTyb
本文来自企鹅号 - TTyb媒体
如有侵权,请联系 cloudcommunity@tencent.com 删除。
本文来自企鹅号 - TTyb媒体
如有侵权,请联系 cloudcommunity@tencent.com 删除。