/ / r-r、web-scraping、rcurl、httr、rseleniumでパスワードで保護されたフォーラムをスクレイピング

r - rでパスワードで保護されたフォーラムを掻き集める、web-scraping、rcurl、httr、rselenium

スクリプトへのログインに問題があります。私がstackoverflowで見つけた他のすべての良い答えにもかかわらず、どの解決策も私にはうまくいきませんでした。

私は博士号の研究のためにウェブフォーラムをスクレイピングしています。そのURLは http://forum.axishistory.com.

私がスクレイプしたいウェブページはメンバーリストです-すべてのメンバープロファイルへのリンクを一覧表示するページ。ログインしている場合にのみメンバーリストにアクセスできます。ログインせずにメンバーリストにアクセスしようとすると、ログインフォームが表示されます。

メンバーリストのURLは次のとおりです。 http://forum.axishistory.com/memberlist.php.

私はhttr-packageを試しました:

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

出力はログイン形式です。

次にRCurlを試しました:

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

出力はログイン形式です-再び。

次に、このトピックのlist()関数を試しました- パスワードで保護されたWebサイトを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)

そしてまた!出力はログイン形式です。

次に取り組んでいるのはRSeleniumですが、これらすべての試みの後で、おそらく何か(おそらく完全に明白なもの)が欠落しているかどうかを把握しようとしています。

私はここで他の関連する投稿を見ましたが、私のケースにコードを適用する方法を理解できませんでした:

Rを使用してCookieを必要とするSSLページからzipファイルをダウンロードする方法

パスワードで保護されたWebサイトをRでスクレイプする

Rを使用してCookieを必要とするSSLページからzipファイルをダウンロードする方法

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

Rを使用したWebスクレイピングパスワードで保護されたWebサイト

回答:

回答№1の場合は7

サイモンのおかげで私はここで答えを見つけました: rvestまたはhttrを使用してWebページの非標準フォームにログインする

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)