【入门-R爬虫抓取数据】文本挖掘之数据爬虫
?? ? ? R進行爬蟲,經常用的包有RCurl和rvest兩個包,這里我主要介紹rvest包爬蟲,大致的思路其實是一樣的,爬蟲之前需要對網頁有個基本的了解,會查看網頁相應的審核元素,找到相應的節點所在的位置,找到節點的類型class,這些了解了,后面爬蟲就會得心應手很多。不多說了,先上代碼吧。
library(rvest)
library(xml2)
library(sqldf)
library(gsubfn)
library(proto)
library(RSQLite)
library(DBI)
library(data.table)
library(stringr)
extradata<-function(i,non_pn_url){
???? url<-paste0(non_pn_url,i)##先給一個沒有頁碼的網頁#
???? web<-html(url)#通過html解析網頁##
???? title<-web %>% html_nodes("div.articleh span.l3 a")%>%html_text()%>% .[c(seq(1,86,1))] %>% as.character()##找到評論數據對應的節點類型,匹配獲取節點##
???? paperlink<-gsub("\\?source\\=search","",web %>% html_nodes("div.articleh") %>% html_attr("href"))%>% .[c(seq(2,20,2))]##獲取網頁跳轉連接##
???? paperlink<-paste0("http://www.eastmoney.com/",paperlink) %>% as.character()###輸入無頁碼鏈接 ##
???? author<-web %>% html_nodes("div.articleh span.l4") %>% html_text()##匹配獲取作者的class節點
???? posttime<-web %>% html_nodes("div.articleh span.l6") %>% html_text()
???? update_time<-web %>% html_nodes("div.articleh span.l5") %>% html_text()
???? count_of_comment<-web %>% html_nodes("div.articleh span.l2") %>% html_text()
???? count_of_read<-web %>% html_nodes("div.articleh span.l1") %>% html_text()
???? data.frame(title,author,posttime,update_time,count_of_comment,count_of_read)##構造一個數據框##
}
finaldata<-data.frame()
url<-'http://guba.eastmoney.com/list,002373.html?from=BaiduAladdin'##獲取有頁碼的第一頁的鏈接
for(i in 1:25){
??? extradata(i,url)
??? finaldata<-rbind(finaldata,extradata(i,url))
}##這里是抓取了25頁的數據#
finaldata1<-as.data.frame(finaldata)
names(finaldata)
dim(finaldata1)
head(finaldata)
?????? 最后來看看爬蟲抓取的數據效果
????? 爬蟲內容今天就介紹到這里,后續有新的發現在跟進 ,希望小伙伴們多提提意見,這里也感謝參考的牛人大神們的分享。
文章改編自《文本挖掘之數據爬蟲》
原文鏈接:http://quant.jd.com/community/subjectDetails/175
歡迎加入京東金融量化官方交流群:456448095,有任何問題和建議均可討論交流。
總結
以上是生活随笔為你收集整理的【入门-R爬虫抓取数据】文本挖掘之数据爬虫的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: Swagger自定义模板
- 下一篇: java基础入门《一》