前一阵换房子,找房子真的是太麻烦了,自如自动筛选的功能没有自己手动筛选符合心意,所以打算都爬下来,自己看。
在爬取的过程中,相信大家都遇到一个坑,就是那个价格的问题,每次随机加载出来一个不规则命名的图片,图片上的数字都是乱序,前端从这张图片根据像素截取出来数字,来展示价格。
这次的图片如下图:
http://static8.ziroom.com/phoenix/pc/images/price/da2eb29246dbe091142bac5e9df36d33s.png
用chrome看价格展示出来的是这样的:
看到上面那个那个图片对应的像素截取真是太坑,要是每次都这么获取,获取的东西真的是太多了,但是这也是一个方法。
price_string
。price_string
的数字对应起来组成房间价格。 上面的方法真的太麻烦了,我继续往下看,在源代码页果然找到了那张图片的加载连接,居然还有价格的offset
,真是意外惊喜。
var ROOM_PRICE = {"image":"//static8.ziroom.com/phoenix/pc/images/price/da2eb29246dbe091142bac5e9df36d33s.png","offset":[[2,9,6,0],[2,0,8,0],[2,0,7,0],[2,1,6,0],[2,0,6,0],[9,6,7,0],[9,6,6,0],[9,4,6,0],[2,9,6,0],[9,6,7,0],[2,0,6,0],[2,5,6,0],[2,2,8,0],[2,9,8,0],[8,6],[9,4,8,0],[9,4,6,0],[2,0,6,0]]};
offset
转成房间的价格!我直接用的思路二,比较简单。
图片的思路有了,接下来就是文字识别了,尝试了一下tesseract-ocr,发现结果并不是太理想(安装方法)总会有识别错的,后来进行了二值化,图片里的数字1
总是识别不出来。
后来突然想起来没必要自己造轮子啊,用大厂现成的就好了,找到了百度AI,里面的文字识别,贴个技术文档的链接:http://ai.baidu.com/docs#/OCR-API/top
最开始用的通用文字识别,但是也会总出现识别不到1
的情况,后来又把图片的北京改成白色,有所改善,但是运气不好的时候就识别不出来,后来用的通用文字识别(高精度版),虽然每天免费次数少了,但是不大影响,毕竟识别的次数也不多。
链接:https://pan.baidu.com/s/1pjSH1gMiD3ogr_rr07rX-Q
注意: