链家广州二手房的数据与分析——爬取数据



以前在博客分享了利用 R 和 rvest 包爬虫的基础方法。如今就来实战一下:爬取链家网广州 40,000+ 套二手房的数据。
lianjia homepagehtml

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


>> Web Scraping across Multiple Pages


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

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

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

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

......函数

由此可推断,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)
}

2) 而后利用上述的函数循环爬取第 1 页到第 100 页的数据,并将多页的数据合并成一个 data frameurl

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
  2. 链家广州二手房的数据与分析——数据分析2
相关文章
相关标签/搜索