记得记得两年前对于R不感冒,看爬虫的时候觉得太难就不学了,今天闲着无聊就重新拾起,自己相较于两年前有了进步,懂得查找爬虫知识,有耐心去学习爬虫。
今天就学习了静态网页提取数据,爬取链家房产的三爻附近的房子。什么叫静态网页请参照百度百科学习哈!
代码如下:
> library("xml2") # 读取HTML和XML格式数据
> library("rvest") # 网页数据抓取包
> library("dplyr") # 提供了一个访问常见数据库的接口
> library("stringr")# 结合stringr包对数据进行清理
#对爬取页数进行设定并创建数据框:
> I <- 1:1
> house_inf <- data.frame() # 创建数据框
#利用for循环封装爬虫代码,进行批量抓取:
> for (i in 1:1){
#发现url规律,利用字符串函数进行url拼接并规定编码:
web <- read_html(str_c(“https://xa.lianjia.com/ershoufang/rs华城泊郡/”, i), encoding = “UTF-8”)
#提取房名信息:
> house_name <- web%>%html_nodes(".houseInfo a")%>%html_text()#小区名
#提取房名基本信息并消除空格
> house_basic_inf <- web%>%html_nodes(".houseInfo")%>%html_text()#基本信息
> house_basic_inf <- str_replace_all(house_basic_inf," ","")#消除空格
#提取二手房地址信息
> house_Floor_number<- web%>%html_nodes(".positionInfo")%>%html_text()#提取楼层数
> house_address <- web%>%html_nodes(".positionInfo a")%>%html_text() #位置
#提取二手房总价信息
> house_totalprice <- web%>%html_nodes(".totalPrice")%>%html_text() # 总价
#提取二手房单价信息
> house_unitprice <- web%>%html_nodes(".unitPrice span")%>%html_text() # 单价
#提取二手房关注信息
> fllow_information<-web%>%html_nodes(".followInfo")%>%html_text() #关注信息
#是否临近地铁
> house_subway<-web%>%html_nodes(".tag")%>%html_text() #是否临近地铁
#创建数据框存储以上信息
> House<-data.frame(house_name,house_basic_inf,house_Floor_number,house_address,house_totalprice,house_unitprice,fllow_information,house_subway)
> house_inf <- rbind(house_inf,House) #合并
}
#将数据写入csv文档
> write.csv(house_inf, file="../house_inf.csv") #导出csv个数数据
爬取数据如下: