在 r 中抓取受密码保护的论坛
Scraping password protected forum in r
我在登录脚本时遇到问题。尽管我在 Whosebug 上找到了所有其他好的答案,但 none 的解决方案对我有用。
我正在为我的博士研究抓取一个网络论坛,它的 URL 是 http://forum.axishistory.com。
我想抓取的网页是会员列表——一个列出所有会员资料链接的页面。只有登录后才能访问会员列表。如果您尝试在未登录的情况下访问会员列表,它会显示登录表单。
成员列表的URL是这样的:http://forum.axishistory.com/memberlist.php。
我尝试了 httr 包:
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() 函数 - Scrape password-protected website in 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,但在所有这些尝试之后,我试图弄清楚我是否可能遗漏了一些东西(可能是一些非常明显的东西)。
我查看了此处的其他相关帖子,但无法弄清楚如何将代码应用到我的案例中:
How to use R to download a zipped file from a SSL page that requires cookies
Scrape password-protected website in R
How to use R to download a zipped file from a SSL page that requires cookies
Web scraping password protected website using R
感谢西蒙,我在这里找到了答案:
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)
我在登录脚本时遇到问题。尽管我在 Whosebug 上找到了所有其他好的答案,但 none 的解决方案对我有用。
我正在为我的博士研究抓取一个网络论坛,它的 URL 是 http://forum.axishistory.com。
我想抓取的网页是会员列表——一个列出所有会员资料链接的页面。只有登录后才能访问会员列表。如果您尝试在未登录的情况下访问会员列表,它会显示登录表单。
成员列表的URL是这样的:http://forum.axishistory.com/memberlist.php。
我尝试了 httr 包:
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() 函数 - Scrape password-protected website in 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,但在所有这些尝试之后,我试图弄清楚我是否可能遗漏了一些东西(可能是一些非常明显的东西)。
我查看了此处的其他相关帖子,但无法弄清楚如何将代码应用到我的案例中:
How to use R to download a zipped file from a SSL page that requires cookies
Scrape password-protected website in R
How to use R to download a zipped file from a SSL page that requires cookies
Web scraping password protected website using R
感谢西蒙,我在这里找到了答案:
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)