在r中搜索密码保护的论坛

Ana*_*ina 9 r web-scraping rcurl httr rselenium

我在我的脚本中登录时遇到问题.尽管我在stackoverflow上找到了所有其他好的答案,但没有一个解决方案适合我.

我正在为我的博士研究抓一个网络论坛,其网址是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)
Run Code Online (Sandbox Code Playgroud)

输出是登录表单.

然后我尝试了RCurl:

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

输出是登录表单 - 再次.

然后我尝试了这个主题的list()函数 - 在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)
Run Code Online (Sandbox Code Playgroud)

然后再次!输出是登录表单.

我正在研究的下一件事是RSelenium,但经过所有这些尝试,我试图弄清楚我是否可能遗漏了某些东西(可能是完全明显的东西).

我在这里查看了其他相关帖子,但无法弄清楚如何将代码应用于我的案例:

如何使用R从需要cookie的SSL页面下载压缩文件

在R中刮掉受密码保护的网站

如何使用R从需要cookie的SSL页面下载压缩文件

/sf/ask/1923971801/

Web使用R抓取密码保护的网站

Ana*_*ina 8

感谢Simon,我在这里找到了答案:使用rvest或httr登录网页上的非标准表格

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) 
Run Code Online (Sandbox Code Playgroud)