以前在博客分享了利用 R 和 rvest 包爬蟲的基礎方法。如今就來實戰一下:爬取鏈家網廣州 40,000+ 套二手房的數據。
html
以前在 Web Scraping with R 說過的爬蟲方法在這篇中就不在贅述了。這裏就分享怎麼樣爬取網站中翻頁的數據。node
首先觀察翻頁頁面的 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)) }
知道如何爬取翻頁的數據後咱們就能夠嘗試完整的爬取廣州鏈家網上 4w+ 套二手房的詳細信息(包括區域,小區,幾室幾廳,有無電梯等等)了。
數據量比較大,爬取數據須要一些時間。爬取完畢若是要保存數據須要注意選擇適合的編碼,否則容易亂碼。提供一個可在 Mac Excel 打開的 cvs 格式。