r - 使用 httr R 包发送 POST 请求

标签 r http post authentication httr

当通过 POST 请求发送服务器数据时,我不知道如何模仿浏览器的行为。以下是相关的 URL,下面有解释。

(1) http://kenpom.com/

(2) http://kenpom.com/register.php?frompage=1
<form id="login" method="POST" action="handlers/login_handler.php">
<label>E-mail </label><input type="text" name="email" />
<label>Password </label><input type="password" name="password" />
<input type="submit" name="submit" value="Login!" />

(3) http://kenpom.com/team.php?team=Rice

(1) 主页(未登录时选择团队页面,重定向 -> (2) )

(2) 登录页面(成功登录后重定向到团队特定页面)

(3) 团队特定页面:例如大米

url <- ("http://kenpom.com/team.php?team=Rice")

login <- list(
        email = "login",
        password = "password"
)

teampage <- POST(url, body = login)

Response [http://kenpom.com/register.php?frompage=1]
  Date: 2015-03-07 23:04
  Status: 200
  Content-Type: text/html
  Size: 7.45 kB
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
"http://www.w3.org/TR/html4/loose.dtd">
<HTML>
<HEAD>
<LINK REL=stylesheet TYPE="text/css" HREF="css/rate.css?1414365416">
<TITLE>kenpom.com subscription</TITLE>

最终想使用 rvest 包来抓取一些信息,但在尝试抓取时得到的结果是空的:http://kenpom.com/register.php?frompage=1

最佳答案

尝试

library(httr)
login <- list(
  email = "login",
  password = "password",
  submit = "Login!"
)
res <- POST("http://kenpom.com/handlers/login_handler.php", body = login, encode = "form", verbose())
team <- GET("http://kenpom.com/team.php?team=Rice", verbose())

关于r - 使用 httr R 包发送 POST 请求,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28924820/

相关文章:

Django - 可以在一个 HttpRequest 中返回 POST 和 GET 请求吗?

php - 发布到 PHP 脚本中的另一个页面

Python 相当于 curls --form : Create multipart form-data post request with data in "form" parameter

python - 在 python block 中定义函数,然后从 R block 中调用它

r - 从 R 中具有精确均值和 sd 的截断正态分布生成数据

rgdal 不会安装在 docker ubuntu 18.04 "ERROR::command not found"

html: 'form'对页面布局有什么影响

Groovy 中的 HTTP 客户端库

r - 如何显示与所用变量不同的标签

c# - Response.Write Base64字符串