extrahieren Ich möchte eine Umfrage über den Berichtszeitraum der Zeitschrift wissenschaftliche Berichte, http://www.nature.com/srep/articles. Ich möchte die Sendezeit und die Annahmezeit jedes Artikels innerhalb eines Zeitfensters (oder der letzten 100 Artikel) extrahieren. Gibt es einen Vorschlag, wie man das in R macht? Die Lösung kann einfach sein, aber ich habe R nie zuvor für das Scraping verwendet. Einige Hinweise können sehr hilfreich sein.Wie Informationen des Berichtszeitraums aus einem Journal mit R
0
A
Antwort
1
Hier ist, was Sie
Stellen Sie sich Ihren Links in einer CSV-Datei, die als einzige Änderung versuchen, kann ich in den Links finden Sie in der srepID
am Ende ist, es zu tun, wie unten gezeigt:
> 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
dann
führen Sie den folgenden Code: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"
Sie werden die Ergebnisse erhalten, wie:
> 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
HINWEIS: Maximal die URLs, desto länger dauert die Zeit bis zum Abschluss des Codes. Die Seite erlaubt auch keine bösen Aktionen auf ihren Seiten, so dass sie Ihnen nicht alle Informationen geben kann, ohne einen alternativen Weg zu nehmen.
Das funktioniert gut. Vielen Dank – yliueagle