首先我们看一个城市的成交页面: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