zoukankan      html  css  js  c++  java
  • 链家广州二手房的数据与分析——爬取数据


    之前在博客分享了利用 R 和 rvest 包爬虫的基础方法。现在就来实战一下:爬取链家网广州 40,000+ 套二手房的数据。 ![lianjia homepage](https://img2018.cnblogs.com/blog/1705277/201906/1705277-20190605133024627-717267069.png)

    之前在 Web Scraping with R 说过的爬虫方法在这篇中就不在赘述了。这里就分享怎么样爬取网站中翻页的数据。


    #### >> Web Scraping across Multiple Pages

    首先观察翻页页面的 url 规律,比如广州链家二手房数据:

    第一页:https://gz.lianjia.com/ershoufang/

    第二页:https://gz.lianjia.com/ershoufang/pg2/

    第三页:https://gz.lianjia.com/ershoufang/pg3/

    ......

    由此可推断,url 为 "https://gz.lianjia.com/ershoufang/pg" + 页码

    1. 假设我们需要爬去第 1 页到第 100 页的房屋总价。那么我们可以先尝试爬取第一页的数据,并封装成一个函数.
    getHouseInfo <- function(pageNum, urlWithoutPageNum) {
      url <- paste0(urlWithoutPageNum, pageNum)
      webpage <- read_html(url,encoding="UTF-8")
      total_price_data_html <- html_nodes(webpage,'.totalPrice span')
      total_price_data <- html_text(total_price_data_html)
      data.frame(totalprice = total_price_data)
    }
    
    1. 然后利用上述的函数循环爬取第 1 页到第 100 页的数据,并将多页的数据合并成一个 data frame
    url <- "https://gz.lianjia.com/ershoufang/pg"
    houseInfo <- data.frame()
    for (ii in 1:1553){
      houseInfo <- rbind(houseInfo, getHouseInfo(ii, url))
    }
    

    #### >> Sample Code

    知道如何爬取翻页的数据后我们就可以尝试完整的爬取广州链家网上 4w+ 套二手房的详细信息(包括区域,小区,几室几厅,有无电梯等等)了。

    download here

    数据量比较大,爬取数据需要一些时间。爬取完毕如果要保存数据需要注意选择适合的编码,不然容易乱码。提供一个可在 Mac Excel 打开的 cvs 格式。

    data

    >> 后续分析


    1. [链家广州二手房的数据与分析——数据分析1](https://www.cnblogs.com/yukiwu/p/11271515.html) 2. [链家广州二手房的数据与分析——数据分析2](https://www.cnblogs.com/yukiwu/p/11333349.html)
    作者:Yuki
    本文版权归作者和博客园所有,欢迎转载,转载请标明出处(附上博客链接)。 如果您觉得本篇博文对您有所收获,请点击右下角的 [推荐],谢谢!

    关注我的公众号,不定期更新学习心得
  • 相关阅读:
    4月21日Java作业
    5.14 Java作业
    第十周java作业
    4月30号作业
    第七周上机
    4.9Java
    通宵看剧有感
    error: pathspec 'xxxxxxxxx' did not match any file(s) known to git
    markdown格式测试
    博客申请通过啦
  • 原文地址:https://www.cnblogs.com/yukiwu/p/10975337.html
Copyright © 2011-2022 走看看