应用R语言在百度学术上爬虫

最近因为在写一篇论文,需要检索百度学术上发表的一些文章以及文章的相关信息,如果是复制黏贴的话,可能会非常麻烦,为了提高工作效率,所以试着开始用R语言来爬虫。通过这两天的学习发现,R语言中的rvest包是爬虫的利器,非常方便。rvest的开发者是Hadley Wickham,他是数据可视化神器ggplot2的开发者,所以说rvest也绝对是个神器!

[大神 Hadley rvest in GitHub]https://github.com/hadley/rvest

下载rvest的网址如下:

https://cran.r-project.org/web/packages/rvest/index.html

下面对rvest包中的主要函数的功能做一下简单说明:

read_html() 读取html文档的函数,其输入可以是线上的url,也可以是本地的html文件,甚至是包含html的字符串也可以;

html_nodes() 选择提取文档中制定元素的部分;

html_tag() 提取标签名称;

html_text() 提取标签内的文本;

html_attr() 提取指定属性的内容;

html_attrs() 提取所有的属性名称及其内容;

html_table() 解析网页数据表的数据到R的数据框中。

html_form(),set_values()和submit_form() 分别表示提取、修改和提交表单。

下面是例子:

我想在百度学术上找到高中生学校归属感和主观幸福感的论文,以及这些论文发表的年份。如果是手动复制黏贴,需要重复455次,通过爬虫,只需要几分钟的时间就能搞定!

下面是R语言的代码

library(stringr)

library(xml2)

library(rvest) #加载包

i

xueshu_data

#写个循环,对固定网页结构重复抓取

for (i in 1:8){

&tn=SE_baiduxueshu_c1gjeupa&ie=utf-8&sc_f_para=sc_tasktype%3D%7BfirstSimpleSearch%7D&sc_hit=1&rsv_page=1"),encoding="UTF-8")#read_html函数解析网页并规定编码str_c函数对页数循环

title%html_nodes(".c_font")%>%html_text()#"a"即为Selectorgadget定位节点信息,节点信息需要其他软件获得

title[16]

title

year%html_nodes(".sc_time")%>%html_text()

title_inf

xueshu_data

}

write.csv(xueshu_data,file="C:/Users/Desktop/修改/source_inf.csv")#写入数据

最后结果见下表:

一共抓取了80篇文章,表中只显示了7篇文章,有了这个数据,后续就能进行深入分析了。

  • 发表于:
  • 原文链接:http://kuaibao.qq.com/s/20171211G0DGZA00?refer=cp_1026

扫码关注云+社区