Problem bei verbindung zu HTML

... zu anderer statistischer Software, zu Datenbanken und Programmiersprachen.

Moderatoren: EDi, jogo

Benutzeravatar
EDi
Beiträge: 693
Registriert: Sa Okt 08, 2016 3:39 pm

Re: Problem bei verbindung zu HTML

Beitrag von EDi » Fr Nov 23, 2018 6:52 pm

Kramer hat geschrieben:
Fr Nov 23, 2018 5:47 pm
Habe es mit Docker gelöst, danke für deine Hilfe.
:?: Kannst du mit uns teilen wie eine containerisierung dein web-scraping Problem gelöst hat?
Kann mir das gerade nicht vorstellen...
Bitte immer ein reproduzierbares Minimalbeispiel angeben. Meinungen gehören mir und geben nicht die meines Brötchengebers wieder.

Dieser Beitrag ist lizensiert unter einer CC BY 4.0 Lizenz
Bild.

Benutzeravatar
student
Beiträge: 228
Registriert: Fr Okt 07, 2016 9:52 am

Re: Problem bei verbindung zu HTML

Beitrag von student » Sa Nov 24, 2018 10:01 am

Würdest Du beschreiben, wie Du das Problem gelöst hast?
Viele Grüße,
Student
-----------------------------------------------------------------------------------------------------------------------
faes.de, r-statistik.de und das Ad-Oculos-Projekt

Habe Mut, dich deines eigenen Verstandes zu bedienen! (Kant)

Benutzeravatar
EDi
Beiträge: 693
Registriert: Sa Okt 08, 2016 3:39 pm

Re: Problem bei verbindung zu HTML

Beitrag von EDi » Sa Nov 24, 2018 6:03 pm

Na das problem ist ja, dass die Daten von einem script generiert werden.
Man also nicht direkt scrapen kann.
Man könnte vielleicht das skript in R ausführen (V8 paket z.b.) und danach scrapen?

Im docker container ist bestimmt selenium oder phantomjs oder beides...
Bitte immer ein reproduzierbares Minimalbeispiel angeben. Meinungen gehören mir und geben nicht die meines Brötchengebers wieder.

Dieser Beitrag ist lizensiert unter einer CC BY 4.0 Lizenz
Bild.

Kramer
Beiträge: 15
Registriert: Fr Nov 02, 2018 12:29 pm

Re: Problem bei verbindung zu HTML

Beitrag von Kramer » Sa Nov 24, 2018 10:58 pm

Moin,

also ich habe bei Docker eingegeben:

Code: Alles auswählen

docker run -d -p 4445:4444 selenium/standalone-firefox:2.53.0
Danach bei R:

Code: Alles auswählen

remDr <- RSelenium::remoteDriver(remoteServerAddr = "192.168.99.100", port = 4445L)
remDr$open(silent = T)

url1 <- "http://www.boerse-frankfurt.de/anleihen/kurshistorie/Inh-Schv_v20122019-Anleihe-2019-AT0000A0U9J2/FSE/1.5.2017_19.11.2018#Kurshistorie"
remDr$navigate(url1)
pageSource <- read_html(remDr$getPageSource()[[1]])
dt <- html_table(html_nodes(pageSource, ".table"), fill = T)

Funktioniert auch, aber folgendes Problem:

Code: Alles auswählen

URL_1<- structure(list(carb = c('000A0U9J2', '000A0V7D8', '000A0VL70', '000A0VLS5'), optden = c('http://www.boerse-frankfurt.de/anleihen/kurshistorie/Inh-Schv_v20122019-Anleihe-2019-AT0000A0U9J2/FSE/1.5.2017_19.11.2018#Kurshistorie', 
                                                                                  'http://www.boerse-frankfurt.de/anleihen/kurshistorie/Strabag_SEEO-Schuldverschr_201219-Anleihe-2019-AT0000A0V7D8/FSE/1.5.2017_19.11.2018#Kurshistorie', 'http://www.boerse-frankfurt.de/anleihen/kurshistorie/BorealisEO-Schuldv_201219-Anleihe-2019-AT0000A0VL70/FSE/1.5.2017_19.11.2018#Kurshistorie', 'http://www.boerse-frankfurt.de/anleihen/kurshistorie/AndritzEO-Anleihe_201219-Anleihe-2019-AT0000A0VLS5/FSE/1.5.2017_19.11.2018#Kurshistorie')), .Names = c("ISIN", "LINK"
                                                                                  ), row.names = c("1", "2", "3", "4"), class = "data.frame")
                                                        
Ich möchte jetzt auf dieser Tabelle basierend eine Liste erstellen die die gewünschte Tabelle extrahiert, insgesamt für knapp 4000 Webseiten. Dafür habe ich eine while Schleife gebaut:

Code: Alles auswählen


#Erstes Element von TS_data definieren:

  remDr <- RSelenium::remoteDriver(remoteServerAddr = "192.168.99.100", port = 4445L)
  remDr$open(silent = T)

url<-URL_1[1,2]
remDr$navigate(url)
pageSource <- read_html(remDr$getPageSource()[[1]])
dt <- html_table(html_nodes(pageSource, ".table"), fill = T)
list_of_TS_data<-dt[7]




i=2

while(i < 5) {
  url<-URL_1[i,2]
  remDr$navigate(url)
  pageSource <- read_html(remDr$getPageSource()[[1]])
  dt <- html_table(html_nodes(pageSource, ".table"), fill = T)
  list_of_TS_data[i]<-dt[7]
  print(i)
  i = i+1
}

Leider funktioeniert das ganze nur manchmal und irgendwann gibt er nur noch null aus. Wenn ich das ganze nochmal mache kommen irgendwie wieder andere Sachen raus. Ich kenn mich leider mit Docker nicht gut aus, weiss jemand woran das liegt und kann mir helfen?

Antworten

Wer ist online?

Mitglieder in diesem Forum: 0 Mitglieder und 1 Gast