Ich habe Datentabelle (npi1_list), die ID-Nummer enthält und basierend auf der Nummer der Web-Verschrottung von der Website, npi Liste wird die ID-Nummer auf der Website und ziehen Sie die Datensätze für mich.Versuchen Sie und fangen Sie in r während der Verschrottung
library("rvest")
library("data.table")
final<- NULL
for(i in 8000:200000){
url<-paste("http://www.npinumberlookup.org/getResultDetails.php?
npinum=",npi1_list[i,1],sep='')
webpage<-read_html(url)
Name<- html_nodes(webpage, 'table:nth-child(8) tr:nth-child(1) td~ td+ td ,
table:nth-child(6) tr:nth-child(1) td~ td+ td')
rank_data <-html_text(Name)
final <- rbind(final,rank_data)
print(i)
Sys.sleep(1)
}
Dies funktioniert gut, aber manchmal wird der Fehler der Verbindungszeit Port 80 Fehler angezeigt und wieder dann muss ich i aus initialisieren, wo die Schleife beendet wurde und die für loop.How erneut ausführen versuchen zu tun, zu implementieren und fangen Option in oben für Schleife, so dass ich keine 200000.
bis Linie automatisieren Warum sind Sie nicht nur auf die [herunterladbare vollständige Datenbank] mit (http://download.cms.gov/nppes/NPI_Files. html) und/oder die wöchentlichen Updates? Hämmern einer Website - sie ** explizit angeben ** ein Minimum von [20 Crawl-Verzögerung] (http://www.npinumberlookup.org/robots.txt) - ist nicht cool für Daten, die Sie in Massen an anderer Stelle finden können. Sie sind auch keine autoritative Quelle, daher mache ich mir auch Gedanken über Datenintegritätsprobleme. – hrbrmstr