美文网首页
R爬取安居客昆山二手房信息及分析

R爬取安居客昆山二手房信息及分析

作者: 木子人专臣巳水 | 来源:发表于2017-12-29 21:20 被阅读0次

    一、爬取数据

            如果直接从总页面按照页数从头到尾爬取,最多只显示50页,每一页60个房源,总共3000个,说明安居客并没有直接全部显示。于是按照区域逐个进行爬取,一共10个大区域,其中玉山的房源较多,又分了5个小区域,总共是14个细分区域。其中一个代码如下。

    library(RCurl)

    library(XML)

    library(stringr)

    myheader<-c("User-Agent"="Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/50.0.2661.102 Safari/537.36",

    "Accept"=" application/json, text/javascript, */*; q=0.01",

    "Accept-Language"=" zh-CN,zh;q=0.8",

    "Connection"="keep-alive",

    "Accept-Charset"="GB2312,utf-8;q=0.7,*;q=0.7"

    )

    page<-1:50                                                   

    base<-"https://ks.anjuke.com/sale/shiqukunshan/p"

    pageresults<-data.frame()

    for (i in 1:length(page))  {

    url<-paste(base,page,"/?from_price=101&to_price=120",sep='')

    source<-getURL(url,httpheader=myheader,followlocation=TRUE,encoding="utf-8")

    parse <- htmlParse(source)

    #标题

    a<-getNodeSet(parse,"//div[@class='house-title']/a/@title")

    title<-iconv(a,"utf-8")

    #面积

    info<-sapply(getNodeSet(parse,"//div[@class='details-item']/span/text()"),xmlValue)

    mianji<-str_subset(info,"m")

    mianji<-str_sub(mianji,end=-3)

    #楼层

    louceng<-str_subset(info,"层")

    #房型

    fangxing<-str_subset(info,"[室]")

    #时间

    shijian<-str_sub(str_subset(info,"建造"),end=-4)

    #小区+地段

    b<-str_subset(info,"\n")

    c<-str_trim(b)

    c1<-lapply(strsplit(c,"\n"),function(x){x[1]})

    xiaoqu<-str_trim(c1)

    c2<-lapply(strsplit(c,"\n"),function(x){x[2]})

    diduan<-str_trim(c2)

    #价格

    d<-getNodeSet(parse,"//span[@class='price-det']/strong/text()")

    zongjia<-sapply(d,xmlValue)

    e<-getNodeSet(parse,"//span[@class='unit-price']/text()")

    e1<-sapply(e,xmlValue)

    danjia<-str_sub(e1,end=-5)

    #经纪人

    jingjiren<-sapply(getNodeSet(parse,"//span[@class='brokername']/text()"),xmlValue)

    #链接

    f<-getNodeSet(parse,"//div[@class='house-title']/a/@href")

    link<-iconv(f,"utf-8")

    result<-data.frame(title,mianji,louceng,fangxing,shijian,xiaoqu,diduan,zongjia,danjia,jingjiren,link,stringsAsFactors=FALSE)

    }

    pageresults <-rbind(pageresults,result)

    write.csv(pageresults,"1.csv")

    其余区域整体代码相似,在base处将各区域url代入即可。

    二、清洗数据

            全部爬完一共有33万的数据,导入Excel进行数据清洗,删除重复数据之后为3万3千条,字段内容检查后并没有缺失,在第一行添加字段名称,清洗后的数据如下所示。

    三、分析数据

            二手房网站上的数据不一定是最终成交价格,因而信息仅供参考。一共是标题、面积、楼层、房型、时间、小区、地点、总价、单价、经纪人及链接共11个字段,以下选择部分字段进行分析。

            因300平方以上的房源较少,取了300以下的进行分析。最热门的面积位于81-100的区间,其次是121-140101-120两个区间,但分别也只有第一的一半左右,可见小户型房源更受购房者欢迎。

            取60-200平方这个大区间来分析,末位数是0和5的房源数比较多,基本图中的峰值都对应着85,90,95之类的面积。例外的两个极值:89和143,查看房地产交易政策后发现这两个面积与90、144平米相比意味着更少的税费和首付,交易政策的影响显而易见。

            位于中层的房源占42%,其次是高层占24%,以及低层房源和别墅分别占17%。

            三室两厅占据房源总量近1/3,二至四室+两厅的房型占了70%,可见客饭厅分离的房型占据了绝大多数,社交需求以及追求更好的居住体验使得两厅甚至多厅成为一种趋势。

            1995年前的房源很少,而2010年的房源最多,2011年急剧下降。原因来自当年昆山的限购政策,2010年房价急剧上涨,2011年限购后交易量断崖式下跌,2012年市场回暖,同时今年正好是2012年后的第5年,满五年可以减税,房源数次之。2015年作为满2年减税的年份,同样房源数量可观。由于去年昆山再次限购以及新房税费高的问题,近两年的房源相较而言略少,政策的影响再次得到体现。

            玉山房源总数占了57%,这也是昆山的主城区,其中市区房源最多,剩余地区房源占比都不足10%。

            在售房源最多的10个小区全部位于玉山市区,市中心是购房最大的热门。

            总均价以121-140万101-120万最多,扩大来看80-180万是购房的主力区间,占据了总数的半壁江山。

            总均价最高的10个小区都是别墅,8个位于城西,其余2个分别在城南和城东,均已经超过1000万,最高达到3000万,相比之下昆山的整体均价(217万)只是一个零头。

            单价均价的分布可以看到1-1.2万是二手房交易的主力单价,其次是1.2-1.4万以及0.8-1万。

            单价均价最高的10个小区基本都在昆山均价(15532)的2倍以上。其中除了四个是位于城西的别墅小区外,其余六个都是昆山最好的小学和初中:实小和二中的双学区房,学区房是房地产的第一支柱

            高达62%的房源是精装修,也不排除部分经纪人为了引人关注而特意如此发布,实际并未达到要求。

            按区域来看,平均住宅面积前两位分别是淀山湖和巴城,平均单价最高的区域是城西,居住环境良好,楼盘较新,面积也不小,总均价在300万以上。

            对60到200平米的房源面积和总价建模,看到面积和总价有明显的线性关系,通过SPSS回归分析得到线性模型为Y=-12.722+1.515X,其中X为面积,Y为总价。

            通过SPSS二阶聚类模型对14个区域进行了分类,看到可以大致分成五类:

    类型1单价最高,面积最小,年代最久远,对应着昆山市区的房源,老旧狭窄,学区因素影响极大;

    类型2单价和面积均较高,年代也很新,对应着城西和花桥,都是近年涨势很猛的区域;

    类型3面积最大,年代也最近,包括巴城、城东、淀山湖、锦溪、周庄全部以及城西的少量房源,新建别墅区大部分位于这些区域,价格自然也不低;

    类型4价格略低,面积尚可,年代稍久,对应城北区域,综合比较来看这一块是绝大多数新昆山人购房的首选之地;

    类型5单价最低,对应着城南、陆家、千灯、张浦和周市一共5块区域,地域偏远、开发不完善以及部分环境问题影响了房价的高企。

            最后统计了经纪人发布标题中的关键词,用R提取前50个最热门关键字作为词云。

    相关文章

      网友评论

          本文标题:R爬取安居客昆山二手房信息及分析

          本文链接:https://www.haomeiwen.com/subject/csywgxtx.html