链家APP以前可以查看房屋的价格变动信息,但新版本后取消了该功能,这样便不利于了解该房源的情况,比如某些房源一路调价3个月仍没卖出,要么不诚心卖,要么有各种问题。
那么对于想购房的同学,有了目标区域重点关注的房源,如何能够获知其价格变动信息呢?很容易想到,自己轮个爬虫,每天自动爬一次,把房屋信息爬下后存起来,然后展示出来。
主要的设计思路为:
1、 页面的爬取,house info的获取,主要涉及beautifulsoup库的使用;仅爬取指定的若干小区。
2、 信息存取:使用MySql数据库,数据库名称lianjiaHouse,包含两张表,两张表通过houseid进行关联:
a) houseinfo,保存房屋基本信息,字段包括 价格、朝向、小区、户型、年代、税费等;
b) hisprice,保存每天价格信息,字段包括日期、价格等;
3、 信息的更新,包括:
a) new house的加入:当前爬取的houseid,数据库中没有,则插入记录。 validflag 标记为1,validdate标记为当前日期。并插入hisprice表
b) old house失效:每次爬取前,首先将数据库中所有validflag标记为0;若当前爬取的houseid,数据库中有,则validflag 标记为1,validdate标记为当前日期,并更新价格信息;若为同一日期,则覆盖更新价格。这样若非当前爬取的houseid,数据库中保留validflag =0,validdate为最后有效日期,价格信息也仅更新到最后有效日期。
4、 信息展示
a) 前端页面,输入指定小区,可展示所有房源信息和价格变动情况。
5、 信息触发发送用户
当有新上房源或者价格变动时,可触发邮件或短信给用户。