2015-10-23 5 views
7

Ich versuche, den Inhalt von http://google.com zu kratzen. die Fehlermeldung herauskommen.rvest Fehler in open.connection (x, "rb"): Timeout wurde erreicht

library(rvest) 
html("http://google.com") 

Fehler in open.connection (x, "rb"):
Timeout wurde Zusätzlich erreicht:
Nachricht Warnung: 'html' ist veraltet.
Verwenden Sie stattdessen "read_html".
Siehe Hilfe ("deprecated")

da ich Firmennetz bin mit, dies vielleicht durch eine Firewall oder einen Proxy verursacht. Ich versuche set_config zu verwenden, funktioniert aber nicht.

+0

haben Sie auch den 'read_html' Befehl versucht, da die Fehlermeldung sagt' html' ist veraltet ... Dies löst Sie möglicherweise nicht Problem, aber vielleicht ist die Ausgabe hilfreicher ... – drmariod

+0

ja, die Nachricht lautet: Fehler in open.connection (x, "rb"): Timeout wurde erreicht Zusätzlich: Warnmeldung: Schließen nicht verwendete Verbindung 3 (http://google.com) – user3267649

+0

eigentlich funktioniert dieser Code in meinem Heimnetzwerk. aber wenn ich versuche, diesen Code im Firmennetzwerk zu verwenden, kommt der Fehler auf. – user3267649

Antwort

3

Dies ist wahrscheinlich ein Problem mit Ihrem Aufruf von read_html (oder html in Ihrem Fall) nicht richtig identifiziert sich zu Server, es versucht, Inhalte abzurufen, die das Standardverhalten ist. Fügen Sie mit curl einen Benutzeragenten zum handle-Argument von read_html hinzu, damit sich Ihr Schaber selbst identifiziert.

library(rvest) 
library(curl) 
read_html(curl('http://google.com', handle = curl::new_handle("useragent" = "Mozilla/5.0"))) 
7

traf ich das gleiche Error in open.connection(x, “rb”) : Timeout was reached Problem, wenn hinter einem Proxy im Büro-Netzwerk zu arbeiten.

Hier ist, was für mich gearbeitet,

library(rvest) 
url = "http://google.com" 
download.file(url, destfile = "scrapedpage.html", quiet=TRUE) 
content <- read_html("scrapedpage.html") 

Credit: https://stackoverflow.com/a/38463559

0

ich in dieser Ausgabe lief, weil mein VPN eingeschaltet war. Unmittelbar nach dem Ausschalten habe ich es erneut versucht und das Problem behoben.