2017-07-28 3 views
0

Ich muss auf diese Seite http://bit.do für Scraping Zweck anmelden. Die Daten werden durch ein Passwort geschützt, aber ich kann nicht herausfinden, wie beim Zugang log sie in R.Wie schaben Sie Daten von dieser Website?

Ich versuchte

library (rvest) 

url  <-"http://bit.d o/#login/admin" 
pgsession <-html_session(url)    
pgform <-html_form(pgsession)[[1]]  


filled_form <- set_values(pgform, 
'username' = "test0001", 
'password' = "qwerty1234") 

submit_form(pgsession,filled_form) 

url <- 'http://bit.d o/admin/url/http%3A||2F||2Fedition.cnn.com||2F2017||2F07||2F21||2Fopinions||2Ftrump-russia-putin-lain-opinion||2Findex.html' 
data_page <- read_html(url) 
data_link<- html_nodes(data_page,'td > a') 
data_click<- html_nodes(data_page,'td span:nth-child(1)') 

aber ich habe diese Art von Fehler

Submitting with 'NULL' 
Error in xml2::url_absolute(form$url, session$url) : 
Not compatible with STRSXP: [type=NULL]. 

Wie könnte ich tun? Dies sind meine Anmeldeinformationen für den Test: test0001, password: qwerty1234. Hier ist ein Beispiel für geschützte Daten, die ich bearbeiten möchte: http://bit.d o/admin/url/http% 3A || 2F || 2Fedition.cnn.com || 2F2017 || 2F07 || 2F21 || 2Fopinions || 2Ftrump-russland-putin- gelegen Meinungs || 2Findex.html

WICHTIG: BEACHTEN SIE, DASS AUFGRUND eINER Stackoverflow RESTRICTION ich einen Raum zwischen dem d PUT und o in Domain-Namen

Antwort

1

Da die Form hat keine url Feld, wenn Sie submit_form(pgsession, filled_form) rufen Sie einen Anruf an xml2::url_absolute(form$url, session$url) findet statt, das nicht funktioniert, weil form$urlNULL ist. Um darüber zu kommen, müssen Sie - auch wenn es leer ist - einen Wert an die form$url geben, die von url_absolute aufgerufen wird. Versuchen Sie, die folgende Zeile, nachdem Sie die filled_form mit set_values füllen:

filled_form$url <- '' 
+0

Vielen Dank für Ihre Antwort @Oriol. Ich habe versucht, 'filled_form <- set_values ​​(pgform, 'username' = "test0001", 'password' = "qwerty1234") filled_form url $ <- '' submit_form (pgsession, filled_form)' und ich ' http://bit.do/?username=test0001&password=qwerty1234&NULL=Login Status: 200 Typ: text/html; charset = UTF-8 Größe: 34650' Leider hat es nicht funktioniert :( –

+0

Hmmm ... Ich bin verwirrt. Sie erhalten einen Login-Status von 200. Bedeutet das nicht, dass Sie erfolgreich eingeloggt? Was? ist das Problem? –

+0

Trotz des Status von 200 Login war nicht erfolgreich und Scraping gibt keine Daten zurück. Sie können es selbst sehen, schrieb ich meine Test-Anmeldeinformationen über –