首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

PHP定向小爬虫获取百万房屋信息之全面出击

接上回

我们将上次的散落在外的代码封装成函数getTrData($tr),功能是从每一行提取到最小的数据元素。即每一户在的栋、单元、层数、室号。

上一篇说到的7栋1单元2楼(层),一层有4户

通过上面的函数,我们提取到的4户数据在EXCEL中是这样的呈现

强迫症表示可以合并前面单元格,就像

当楼层增加的时候,就是

如果7栋有1单元、2单元、3单元,第二列[ 单元 ]又可以拆分

这里体现了权重的关系。栋>单元>层>室号有一点树形结构的意思。

另外我们了解到"栋-单元-层-室号"才能唯一确定一户。

对于关系型数据库存储,最终是以类似EXCEL下图二维表的形式存在的

接下来获取整个楼盘的信息,红色标注了获取每一行的函数

思路是循环table获取每一个tr,从第4行开始才是商品房数据,跳过前面3行,将每一次获取的数据通过系统函数array_merge追加到数组末尾

现在所有的数据都在一个数组里。

但是,别忘了我们所做的工作只是获取了其中一栋的房屋数据。对于一个楼盘,通常都有不止一栋建筑物。

我们的思路应该室先获取楼盘列表,再逐个进入每一栋。

这里忽略爬虫该做的抓去楼栋列表清单的工作,直接用人工的方式给出楼栋特征值

遍历每一栋楼盘信息添加到数据库

对,上面我们一直没有提到创建数据库的SQL操作,我更习惯于命令行方式创建数据库和表

插入数据库的函数,使用最原始的PHP写法(更好的是stmt带?放SQL注入的写法)

获取整个table数据,遍历每一行数据

每一行插入到数据库

通过MySQL数据库管理软件Navicat看到最终保存的数据形式

这样看不出什么,让我们通过一些SQL进行汇总查询房屋状态

得到结果

我们知道30户已查封,让我们看看具体是哪30户

经验之谈:写PHP很大程度在于SQL操作,多会一点SQL,少写十几行PHP。让数据通过数据库操作组合成你要的样子,比用程序拼接要好得多。

2300多户房屋,50万/每户,涉及金额2300x 50 万=115000万= 11.5亿

我们得到想要的数据

那么小爬虫之二就到这里了

如有问题或建议,请在公众号留言

封面来自于 Canada Montreal Snow

  • 发表于:
  • 原文链接http://kuaibao.qq.com/s/20180116G035RQ00?refer=cp_1026
  • 腾讯「腾讯云开发者社区」是腾讯内容开放平台帐号(企鹅号)传播渠道之一,根据《腾讯内容开放平台服务协议》转载发布内容。
  • 如有侵权,请联系 cloudcommunity@tencent.com 删除。

扫码

添加站长 进交流群

领取专属 10元无门槛券

私享最新 技术干货

扫码加入开发者社群
领券