网站优化提升速度,制作网页一般用什么来设计分割页面,昆山哪里有做网站的,35互联网站建设各位老大好#xff0c;我是烤鸭#xff1a;
最近在研究爬虫,看到有意思的是美团的电影票价#xff0c;普通的抓取是抓不到的。例如网址#xff1a;http://bj.meituan.com/shop/105355906?mtt1.movie/cinemalist.0.0.j8oaf2un#xff08;当你打开403或者404的话#xff0…各位老大好我是烤鸭
最近在研究爬虫,看到有意思的是美团的电影票价普通的抓取是抓不到的。
例如网址http://bj.meituan.com/shop/105355906?mtt1.movie/cinemalist.0.0.j8oaf2un当你打开403或者404的话美团的这个网址每次刷新都会变。你可以访问这个http://bj.meituan.com/shop/105355906找个影片就行。打开如图:图片有点看不清没关系如果你也在研究爬虫可能会跟我有一样的疑问这种怎么实现又怎么破解。1.分析网页
普通的爬虫抓取只要找到的特定的标签抓取其中的内容就可以了。但是有一些比较敏感的数据网页会做处理比如价格或者视频资源之类的。视频一般的处理方式是blob二进制存的数据就是二进制取出来的时候浏览器可以解析具体的实现我也不清楚。举个例子http://finance.gaodun.cn/cfapeixun/33049.html
他的视频路径就是blob的。而拿美团来说。我们检查这个价格发现是i标签里引入一张背景图片用postion来调整刚好暴露出来的数字就是价格。知道实现方式就简单了就可以对症下药了。2.解析元素
复制价格的图片i标签的内容。background-image:url(//s0.meituan.net/bs/file/?ffewww:/www/css/si/pricesp/12/25a711bd77.png4344444);background-position: 0px -26px;注意每一次打开网页图片url都是新的一次请求抓取这个页面的全部数据不要分次请求。上面的background-image的url如图。3.破解图片
这一步是最复杂的。我用的是开源的工具tesseract-ocr。附上github地址: https://github.com/tesseract-ocr/tesseract各个版本下载地址 https://github.com/tesseract-ocr/tesseract/tags说下思路如果你用这个工具直接读取这张图片是100%都不出来的因为图片分辨率太小每个数字占的位置也小。我想的是最好的就是显示什么价格我就截取那个价格的数字这样肯定能够解析出来。问题来了怎么取到这个位置。再看一下i标签。background-position: 0px -26px;
试着调整位置不难发现规律图片是x,y轴0-26x轴0y轴-26。知道怎么弄就开始做吧。安装tesseract-ocr不会安装的看这个地址吧。https://www.cnblogs.com/jianqingwang/p/6978724.html。下载exe正常安装配置环境变量。说一下tessdata文件夹里边装的是各种训练库。eng代表英文和数字。chs是中文但是中文支持不太友好。其他的库自己下载去吧。我用的eng够用。截一张安装成功的图。
tesseract -v
查看安装版本4.最后一步。开始代码
之前也说了每次刷新的价格图片都是新的所以我下边演示图片的可能和上边的不一样。先上一张识别结果是我刚试过的这个价格是1postion是0-52。操作就是按照之前的思路把这个图片截取放大再识别因为截取的时候没法精确到个位数所以只能截取一行来根据位置识别。右边的图片就是截取之后的。不敢说正确率只是尝试了几个以上所有内容仅供技术交流希望大家不要用到其他地方。最后附上源码地址http://download.csdn.net/download/angry_mills/10143366上面有些截图可能不是很清楚没关系原理懂了就可以代码下载实践一下欢迎交流。