/ / Skrobanie forum chronione hasłem w r - r, web-scraping, rcurl, httr, rselenium

Skrobanie forum chronionego hasłem w r - r, web-scraping, rcurl, httr, rselenium

Mam problem z zalogowaniem się w skrypcie. Pomimo wszystkich innych dobrych odpowiedzi, które znalazłem podczas stackoverflow, żadne z rozwiązań nie działało dla mnie.

Skrobam forum internetowe dla moich badań doktoranckich, jego adres URL to http://forum.axishistory.com.

Strona, którą chcę zeskrobać, to lista użytkowników -strona zawierająca linki do wszystkich profili członków. Dostęp do listy członków można uzyskać tylko po zalogowaniu. Jeśli spróbujesz uzyskać dostęp do listy członków bez logowania, wyświetli się formularz logowania.

Adres URL listy członków jest następujący: http://forum.axishistory.com/memberlist.php.

Wypróbowałem pakiet httr:

library(httr)
members  <-  GET("http://forum.axishistory.com/memberlist.php", authenticate("username", "password"))
members_html <- html(members)

Dane wyjściowe to formularz logowania.

Potem spróbowałem RCurl:

library(RCurl)
members_html <- htmlParse(getURL("http://forum.axishistory.com/memberlist.php", userpwd = "username:password"))
members_html

Dane wyjściowe to formularz logowania - ponownie.

Następnie wypróbowałem funkcję list () z tego tematu - Złap stronę chronioną hasłem w R :

handle <- handle("http://forum.axishistory.com/")
path   <- "ucp.php?mode=login"

login <- list(
amember_login = "username"
,amember_pass  = "password"
,amember_redirect_url =
"http://forum.axishistory.com/memberlist.php"
)

response <- POST(handle = handle, path = path, body = login)

i znowu! Dane wyjściowe to formularz logowania.

Kolejną rzeczą, nad którą pracuję, jest RSelenium, ale po tych wszystkich próbach próbuję dowiedzieć się, czy prawdopodobnie czegoś mi brakuje (prawdopodobnie czegoś całkowicie oczywistego).

Przejrzałem inne odpowiednie posty tutaj, ale nie mogłem wymyślić, jak zastosować kod do mojej sprawy:

Jak użyć R, aby pobrać spakowany plik ze strony SSL, która wymaga plików cookie

Złap stronę chronioną hasłem w R

Jak użyć R, aby pobrać spakowany plik ze strony SSL, która wymaga plików cookie

https://stackoverflow.com/questions/27485311/scrape-password-protected-https-website-in-r

Witryna internetowa chroniona hasłem za pomocą R

Odpowiedzi:

7 dla odpowiedzi № 1

Dzięki Simonowi znalazłem odpowiedź tutaj: Używanie rvest lub httr do logowania się do niestandardowych formularzy na stronie internetowej

library(rvest)
url       <-"http://forum.axishistory.com/memberlist.php"
pgsession <-html_session(url)

pgform    <-html_form(pgsession)[[2]]

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

submit_form(pgsession,filled_form)
memberlist <- jump_to(pgsession, "http://forum.axishistory.com/memberlist.php")

page <- html(memberlist)

usernames <- html_nodes(x = page, css = "#memberlist .username")

data_usernames <- html_text(usernames, trim = TRUE)