之前在博客分享了利用 R 和 rvest 包爬蟲的基礎方法。現在就來實戰一下:爬取鏈家網廣州 40,000+ 套二手房的數據。 
之前在 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 頁到第 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 頁到第 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+ 套二手房的詳細信息(包括區域,小區,幾室幾廳,有無電梯等等)了。
數據量比較大,爬取數據需要一些時間。爬取完畢如果要保存數據需要注意選擇適合的編碼,不然容易亂碼。提供一個可在 Mac Excel 打開的 cvs 格式。
>> 后續分析
1. [鏈家廣州二手房的數據與分析——數據分析1](https://www.cnblogs.com/yukiwu/p/11271515.html) 2. [鏈家廣州二手房的數據與分析——數據分析2](https://www.cnblogs.com/yukiwu/p/11333349.html)
