上次我们从页面中获得了房间基本信息,接下来只需要获得房间价格信息就可以了。

获取房间价格信息

再继续往下看,可以看到一个叫做priceDetail的标签,点开以后,我傻眼了。里面并没有房屋价格,而是一些我看不懂的东西。

我又仔细看了代码,发现它是由背景图片动态加载的。即在每次刷新网页后,背景图片都不一样。
如图,标红的地方就是加载的图片。如图,它们是这样的。

看来自如为了防止爬虫抓取它的房间价格信息,是使用图片来显示价格的。另外,自如将图片中的数字打乱顺序,使用偏移来表示出真正组成价格的数字。

事情没有那么简单呀~但是,我不会轻易放弃的!

图像识别

接下来的任务,要将图片识别成数字。在这里我使用了机器学习的知识, 来识别这些数字。

首先,将排序后的图片拆分成单个的数字。
我们得到的图片是300x30的像素,因此,每个数字占用30x30的像素。在这里,我使用PIL库将图片拆分成10个子图,每个子图各包含一个数字。然后将数字转化成灰度图,如图所示。

由于每个数字的结构都是大不相同的,因此,在这里使用skimage库进行提取数字的骨架。
但是,在提取骨架时,我又遇到了麻烦ㄒ-ㄒ
提取骨架时需要将图像进行二值化处理,但是处理后的图像却如下图所示。

可以看出自如的工程师故意在随机区域内添加了噪声,以防止基于矩阵的图像识别。
这个问题要怎么办呢?我的一位朋友给我提出了解决方案。他提出的解决思路是,使用聚类进行二值化。在这里,我使用sklearn中的k-Means进行二值化,效果非常好。最终得到的骨架如所示:

使用骨架作为机器学习的输入。使用sklearn中的LR模型进行分类,最终,得到了很好的效果。

令人惊喜的是,更改数字字体,如

也能准确识别数字。

完整代码:https://github.com/hibary2333

python编程-----利用爬虫获取自如房间信息(二)相关推荐

  1. python编程-----利用爬虫获取自如房间信息(三)

    在上次我们已经成功实现了图像识别,接下来只需要获得房间价格是怎么从图片中产生的就可以了. 在列表中查找无果后,我点开了房屋详情,并发现了如下的信息. 我发现在这里,由js发起的ajax 请求设置了图片 ...

  2. python爬取自如房间信息(二)

    主要是针对自如房价的爬取 .以下代码对房价图片进行处理,将里面的数字提取出来,然后用knn最近邻算法去对图片上的数据进行分类. import sys import cv2 import numpy a ...

  3. python爬取自如房间信息(一)

    使用python和selenium+Chrome Headless爬取自如房间信息,并将结果存储在MongoDB中.其中最麻烦的应该是每间房的价格,因为自如是用一张图片和offset来显示价格,所以不 ...

  4. python爬虫获取天猫店铺信息(更新到2020年)

    python爬虫获取天猫店铺信息 爬取需求 在天猫搜索一个关键词,然后抓取这个关键词下的相关店铺,由于taobao的反爬策略,只能爬取到第十页大概200个店铺的信息. 效果预览 最终爬取的数据用exc ...

  5. Python 使用 twitter API 获取twitter用户信息

    Python 使用 twitter API 获取twitter用户信息 1. 概述 twitter作为国外极其大众化的社交平台,具有大量的海外用户,平台流动数据量极大,是国外人群生活数据的重要来源之一 ...

  6. [Python黑帽] 一.获取Windows主机信息、注册表、U盘历史痕迹和回收站文件

    最近开始学习网络安全和系统安全,接触到了很多新术语.新方法和新工具,作为一名初学者,感觉安全领域涉及的知识好广.好杂,但同时也非常有意思.这系列文章是作者学习安全过程中的总结和探索,我们一起去躺过那些 ...

  7. Python:使用爬虫获取世界大学学术排名存储到 Excel 并作可视化输出

    文章目录 问题描述 问题分析 结果展示 代码实现 解法一:BeautifulSoup 解析 HTML 解法二:XPath 解析 HTML 问题描述 从 http://www.zuihaodaxue.c ...

  8. 利用爬虫获取猫眼电影热门前100数据

    利用爬虫获取猫眼电影热门前100数据 实现方法 1:访问网站,获取页面源码 2:解析页面 ,得到想要的数据 3:循环爬取多个页面 4:把数据写入本地文件 ''' 需求:爬取猫眼电影前100的电影信息 ...

  9. igs无法分配驱动器映射表_利用VBA获取驱动器的信息

    大家好,我们今日讲解"VBA信息获取与处理"教程中第十七个专题"文件及文件夹信息的获取及操作"的第三节"利用VBA获取文件的信息和属性",这 ...

最新文章

  1. python连接linux服务器读取txt文件_python 读取Linux服务器上的文件方法
  2. 2007-3-31第五天CCNA课
  3. 在运行时交换出Spring Bean配置
  4. 中国联通被指乱扣费 返还金额限制用
  5. Kong Api 初体验、Kong安装教程
  6. ubuntu 18.04 ip固定
  7. Boost正则表达式库regex常用search和match示例 - 编程语言 - 开发者第2241727个问答
  8. php 数组对,PHP数组游标实现对数组的各种操作详解
  9. 工具的使用 —— windows 实用工具
  10. 一份来自亚马逊技术专家的Google面试指南,GitHub收获9.8万星,已翻译成中文
  11. 植物免疫研究与抗病虫绿色防控:进展、机遇与挑战
  12. python 时间转为秒数
  13. 华为路由器时间同步_好用实在价格亲民 - 华为路由WS5200四核版初体验
  14. sqlserver SQL Server Management Studio和Transact-SQL创建账户、创建访问指定数据库的只读用户
  15. XXL-JOB - 调度中心和执行器的简单使用
  16. 【花雕体验】02 行空板简单使用
  17. Flutter下载SDK中国区
  18. 云计算架构及服务模式
  19. 开视频聊天室怎么赚钱 如何利用聊天室赚钱
  20. 法那科机器人初始化启动_FANUC机器人程序自动启动介绍

热门文章

  1. 图文讲解uni-app支持PC宽屏
  2. nand2tetris 第二章 布尔运算
  3. mysql 5.6 64 位安装 缺少libai.so_CentOS6.7安装部署LNMP(nginx1.8.0+php5.6.10+mysql5.6.12) 法外狂徒...
  4. 请问一下Android Studio如何配置JAVACV 0.8Javacv+2.4.9Opencv 万分感谢
  5. php模板修改教程,商业模板修改高级教程
  6. 招银网络java面经
  7. Mybatis阶段常用单词
  8. ECCV 2020 best paper: RAFT算法解析
  9. 微信扫描普通二维码调起体验版与已发布版的小程序
  10. 计算机室内设计cad实践报告,室内设计师助理实习报告范文