如何采集链家网二手房成交数据?

首先我们看一个城市的成交页面:https://sh.lianjia.com/chengjiao/pg2/

拥有非常多的条件组合,同时最大显示页数为100页,如果希望获取100页之外的,那就只能拆分搜索条件了。

知道了条件组合 以及最大页数之后,那么问题来了,上面如果希望查看详情的话就需要下载APP,那么APP是必须下载的吗?

通过查看html源码可以发现,房屋的图片 有详情页的链接,从而可以避免下载APP了。

采集程序的大致思路就出来了,

首先是整理条件组合,区域+面积+房型差不多就够用了

其次是采集列表

最后是采集详情。

那么在采集之前,首先是先建立好数据库表结构,如下:

CREATE TABLE `lianjiaOtherCheng` (
  `code` varchar(100) NOT NULL COMMENT '链家编号',
  `firstArea` varchar(100) DEFAULT NULL COMMENT '第一区域 城市',
  `firstAreaEn` varchar(10) DEFAULT NULL COMMENT '城市拼音',
  `secondArea` varchar(100) DEFAULT NULL COMMENT '第二区域 区',
  `thirdArea` varchar(100) DEFAULT NULL COMMENT '第三区域',
  `projectName` varchar(500) DEFAULT NULL COMMENT '项目名称',
  `chengjiaoshijian` varchar(50) DEFAULT NULL COMMENT '成交时间',
  `zongjia` decimal(11,2) DEFAULT NULL COMMENT '成交总价',
  `zongjiadanwei` varchar(50) DEFAULT NULL COMMENT '总价单位',
  `zongjiaStr` varchar(50) DEFAULT NULL COMMENT '总价 带单位',
  `chengjiaofangshi` varchar(50) DEFAULT NULL COMMENT '成交方式',
  `danjia` decimal(11,2) DEFAULT NULL COMMENT '单价',
  `danjiadanwei` varchar(50) DEFAULT NULL COMMENT '单价单位',
  `danjiaStr` varchar(50) DEFAULT NULL COMMENT '单价 带单位',
  `touxiang` varchar(500) DEFAULT NULL COMMENT '头像图片',
  `guapaijiage` varchar(50) DEFAULT NULL COMMENT '挂牌价格(万)',
  `chengjiaozhouqi` varchar(50) DEFAULT NULL COMMENT '成交周期(天)',
  `tiaojia` varchar(50) DEFAULT NULL COMMENT '调价(次)',
  `daikan` varchar(50) DEFAULT NULL COMMENT '带看(次)',
  `guanzhu` varchar(50) DEFAULT NULL COMMENT '关注(人)',
  `liulan` varchar(50) DEFAULT NULL COMMENT '浏览(次)',
  `fangwuhuxing` varchar(50) DEFAULT NULL COMMENT '房屋户型',
  `suozailouceng` varchar(50) DEFAULT NULL COMMENT '所在楼层',
  `jianzhumianji` varchar(50) DEFAULT NULL COMMENT '建筑面积',
  `huxingjiegou` varchar(50) DEFAULT NULL COMMENT '户型结构',
  `taoneimianji` varchar(50) DEFAULT NULL COMMENT '套内面积',
  `jianzhuleixing` varchar(50) DEFAULT NULL COMMENT '建筑类型',
  `fangwuchaoxiang` varchar(50) DEFAULT NULL COMMENT '房屋朝向',
  `jianchengniandai` varchar(50) DEFAULT NULL COMMENT '建筑年代',
  `zhuangxiuqingkuang` varchar(50) DEFAULT NULL COMMENT '装修情况',
  `jianzhujiegou` varchar(50) DEFAULT NULL COMMENT '建筑结构',
  `gongnuanfangshi` varchar(50) DEFAULT NULL COMMENT '供暖方式',
  `tihubili` varchar(50) DEFAULT NULL COMMENT '梯户比例',
  `chanquannianxian` varchar(50) DEFAULT NULL COMMENT '产权年限',
  `peibeidianti` varchar(50) DEFAULT NULL COMMENT '配备电梯',
  `jiaoyiquanshu` varchar(50) DEFAULT NULL COMMENT '交易权属',
  `guapaishijian` varchar(50) DEFAULT NULL COMMENT '挂牌时间',
  `fangwuyongtu` varchar(50) DEFAULT NULL COMMENT '房屋用途',
  `fangwunianxian` varchar(50) DEFAULT NULL COMMENT '房屋年限',
  `fangquansuoshu` varchar(50) DEFAULT NULL COMMENT '房权所属',
  `lishichengjiao` text COMMENT '历史成交 分号分割',
  `baiduLat` varchar(50) DEFAULT NULL COMMENT '百度纬度',
  `baiduLng` varchar(50) DEFAULT NULL COMMENT '百度经度',
  `gaodeLat` varchar(50) DEFAULT NULL COMMENT '高德纬度',
  `gaodeLng` varchar(50) DEFAULT NULL COMMENT '高德经度',
  `createTime` date DEFAULT NULL COMMENT '抓取日期',
  PRIMARY KEY (`code`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8 COMMENT='除北京外链家二手房成交记录'

两个经纬度这块是我们自己添加的。网页中显示的是百度经纬度。

之后就开始写代码了。代码太多,请参考:https://qianjieyun.com/new_14CAC3214C8272F32708BA0B2098912C.html

猜你喜欢

转载自blog.csdn.net/fhg12225/article/details/80449031