我想对期刊科学报告,http://www.nature.com/srep/articles的审核期进行调查。我想在一个时间窗口(或最近的100篇文章)中提取每篇文章的提交时间和接受时间。有什么建议在R中如何做到这一点?解决方案可以很简单但我之前从未使用过R进行网络抓取。一些提示可能非常有用。
答案 0 :(得分:1)
这是您可以尝试的内容
在csv文件中编译您的链接,因为我在链接中看到的唯一更改是最后的srepID
,如下所示:
> head(links)
links
1 http://www.nature.com/articles/srep20000
2 http://www.nature.com/articles/srep20001
3 http://www.nature.com/articles/srep20002
4 http://www.nature.com/articles/srep20003
5 http://www.nature.com/articles/srep20004
6 http://www.nature.com/articles/srep20005
然后运行以下代码:
library(rvest)
links <- read.csv("link.csv",T,"~")
for (i in 1:nrow(links)) {
url <- read_html(as.character(links[i,1]))
#Upload
links[i,2] <- url %>%
html_node("dd:nth-child(2) time") %>%
html_text() %>%
as.character()
#Accepted
links[i,3] <- url %>%
html_node("dd:nth-child(4) time") %>%
html_text() %>%
as.character()
}
colnames(links)[2] <- "Received"
colnames(links)[3] <- "Accepted"
您将获得以下结果:
> head(links)
links Received Accepted
1 http://www.nature.com/articles/srep20000 15 October 2015 22 December 2015
2 http://www.nature.com/articles/srep20001 21 October 2015 22 December 2015
3 http://www.nature.com/articles/srep20002 20 October 2015 22 December 2015
4 http://www.nature.com/articles/srep20003 10 November 2015 22 December 2015
5 http://www.nature.com/articles/srep20004 15 November 2015 22 December 2015
6 http://www.nature.com/articles/srep20005 09 November 2015 22 December 2015
注意:最大化URL,完成代码所需的时间越长。该网站也不允许在其网页上执行双击操作,因此无法使用任何其他方式为您提供所有信息。