2015-03-17 9 views
11

Próbuję usunąć dane z Internetu, ale pierwszy krok wymaga zalogowania. Udało mi się zalogować na inne strony internetowe, ale mam dziwny błąd w tej witrynie.Dlaczego "Błąd: długość (URL) == 1 nie jest PRAWDA" z skrobaniem rvest internetowym

library("rvest") 
library("magrittr")  

research <- html_session("https://www.fitchratings.com/") 

signin <- research %>% 
    html_nodes("form") %>% 
    extract2(1) %>% 
    html_form() %>% 
    set_values (
    'userName' = "abc", 
    'password' = "1234" 
    ) 

research <- research %>% 
    submit_form(signin) 

Kiedy uruchomić linię „submit_form” pojawia się następujący błąd:

> research <- research %>% 
+ submit_form(signin) 
Submitting with '<unnamed>' 
Error: length(url) == 1 is not TRUE 

Przedkładanie z bezimienny jest poprawny b/c nie ma nazwy przypisane do podpisania w przycisku. Każda pomoc doceniona!

+0

Jest to przykład nadal aktualne? Po uruchomieniu otrzymuję komunikat "Błąd: nieznane nazwy pól: nazwa użytkownika, hasło". – WhiteViking

+1

Ponadto, wydaje się, że problem ten był spowodowany błędem w rvest i został rozwiązany przez autora pakietu rvest: https://github.com/hadley/rvest/issues/73 Niestety nie ma oficjalnej wersji rvest (z poprawką) ma został wydany od. Może być jednak możliwe ręczne zainstalowanie najnowszej wersji z github. – WhiteViking

Odpowiedz

8

Miałem ten sam problem. Przeskoczyłem kilka kółek, aby uruchomić wersję dev, która działa, i teraz działa płynnie. Oto, jak to zrobiłem:

Pierwsza rzecz pierwsza. Musisz zainstalować RTools. Upewnij się, że R jest zamknięte. Można go znaleźć tutaj: https://cran.r-project.org/bin/windows/Rtools/. Informacje dotyczące instalacji Rtools można znaleźć tutaj (jeśli korzystasz z systemu Windows): github.com/stan-dev/rstan/wiki/Install-Rtools-for-Windows

Załaduj system R, a następnie zainstaluj biblioteki "httr" i "Rcpp", jeśli jeszcze ich nie masz.

Zainstaluj "devtools" i skorelowany instalator github. Informacje można znaleźć pod numerem here, ale podam krótkie podsumowanie z połączonego repo.

Windows:

install.packages("devtools") 
library(devtools) 
build_github_devtools() 

#### Restart R before continuing #### 
install.packages("devtools.zip", repos = NULL, type = "source") 

# Remove the package after installation 
unlink("devtools.zip") 

Mac/Linux:

devtools::install_github("hadley/devtools") 

Teraz, aby uruchomić ostateczne kroki.

library(httr) 
library(Rcpp) 
library(devtools) 
install_github("hadley/rvest") 

Teraz powinno być w stanie uruchomić submit_form(session, form) i nie doświadczać błędu

Submitting with 'xxxx' 
Error: length(url) == 1 is not TRUE 
+1

Uwaga: Rtools są wymagane tylko w systemie Windows. W systemach Mac i Linux zainstalowanie pakietu programistycznego jest trywialne (jest to jedno polecenie, jak pokazano w Twojej odpowiedzi). W rzeczywistości od dawna nie używam CRAN, instaluję wszystko z Github. –

Powiązane problemy