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