- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我是 R 和 rvest 的新手。我正在尝试使用这些从允许使用雅典学术登录系统登录的网站 (www.medicinescomplete.com) 获取信息。在浏览器中,当您单击雅典登录按钮时,它会将您转到雅典登录表单。提交用户凭据后,表单会将浏览器重定向回原始站点但已登录。
我使用 submit_form() 函数将凭据提交到雅典表单中,这将返回 200 代码。但是,R 不像浏览器那样跟随重定向,如果我使用 jump_to() 命令返回原始站点,它不会登录。我怀疑登录页面返回的重定向链接可能包含登录我需要凭据,但我不知道如何找到链接并使用 rvest 发送它
有没有人研究过如何使用 rvest 通过雅典登录,或者对如何使其遵循自动重定向有任何想法?
我用来做到这一点的代码是(登录凭据已更改):
library(rvest)
library(magrittr)
url <- "https://www.medicinescomplete.com/about/"
mcsession <- html_session(url)
mcsession <- jump_to(mcsession, "/mc/athens.htm? uri=https%3A%2F%2Fwww.medicinescomplete.com%2Fabout%2F")
athensform <- html_form(mcsession)[[1]]
athensform <-set_values(athensform, ath_uname = "xxx", ath_passwd = "yyy")
submit_form(mcsession, athensform)
jump_to(mcsession, "https://www.medicinescomplete.com/mc/bnf/current/")
<div style="padding: 8px;" id="logindiv">
<form method="POST" action="https://www.medicinescomplete.com/mc/athens">
Please wait while we transfer you. <br><noscript>JavaScript disabled, please<input type="submit" value="click here" style="border:none;background:none;text-decoration:underline;color:#E27B2F;">
<input type="hidden" name="TARGET" value="https://www.medicinescomplete.com/about/" style="display:none"><input type="hidden" name="RelayState" value="https://www.medicinescomplete.com/about/" style="display:none"><input type="hidden" name="SAMLResponse" value="PFJlc3BvbnNlIHhtbG5zPSJ1cm46b2FzaXM6bmFtZXM6dGM6U0FNTDoyLjA6cHJvdG9jb2wiIHhtbG5zOnNhbWwyPSJ1cm46b2FzaXM6bmFtZXM6dGM6U0FNTDoyLjA6YXNzZXJ0aW9uIiBEZXN...
<script>
window.onload = function() { document.forms[0].submit(); }
</script>
> submit_form(mcsession, athensform) %>% html_form() %>% str()
Submitting with 'submit'
List of 1
$ :List of 5
..$ name : chr "<unnamed>"
..$ method : chr "POST"
..$ url : chr "https://www.medicinescomplete.com/mc/athens"
..$ enctype: chr "form"
..$ fields :List of 4
.. ..$ NULL :List of 7
.. .. ..$ name : NULL
.. .. ..$ type : chr "submit"
.. .. ..$ value : chr "click here"
.. .. ..$ checked : NULL
.. .. ..$ disabled: NULL
.. .. ..$ readonly: NULL
.. .. ..$ required: logi FALSE
.. .. ..- attr(*, "class")= chr "input"
.. ..$ TARGET :List of 7
.. .. ..$ name : chr "TARGET"
.. .. ..$ type : chr "hidden"
.. .. ..$ value : chr "https://www.medicinescomplete.com/about/"
.. .. ..$ checked : NULL
.. .. ..$ disabled: NULL
.. .. ..$ readonly: NULL
.. .. ..$ required: logi FALSE
.. .. ..- attr(*, "class")= chr "input"
.. ..$ RelayState :List of 7
.. .. ..$ name : chr "RelayState"
.. .. ..$ type : chr "hidden"
.. .. ..$ value : chr "https://www.medicinescomplete.com/about/"
.. .. ..$ checked : NULL
.. .. ..$ disabled: NULL
.. .. ..$ readonly: NULL
.. .. ..$ required: logi FALSE
.. .. ..- attr(*, "class")= chr "input"
.. ..$ SAMLResponse:List of 7
.. .. ..$ name : chr "SAMLResponse"
.. .. ..$ type : chr "hidden"
.. .. ..$ value : chr "PFJlc3BvbnNlIHhtbG5zPSJ1cm46b2FzaXM6bmFtZXM6dGM6U0FNTDoyLjA6cHJvdG9jb2wiIHhtbG5zOnNhbWwyPSJ1cm46b2FzaXM6bmFtZXM6dGM6U0FNTDoyLjA"| __truncated__
.. .. ..$ checked : NULL
.. .. ..$ disabled: NULL
.. .. ..$ readonly: NULL
.. .. ..$ required: logi FALSE
.. .. ..- attr(*, "class")= chr "input"
.. ..- attr(*, "class")= chr "fields"
..- attr(*, "class")= chr "form"
submit_form(mcsession, athensform) %>% html_form() %>% submit_form(mcsession, .) %>% html()
Submitting with 'submit'
Submitting with ''
Error in if (!(submit %in% names(submits))) { :
argument is of length zero
最佳答案
它很可能与 this issue 有关这可以防止 httr
发出正确的 GET
重定向查询。
但是有点难以猜测,因为您缺少可重现的示例或查询的完整详细输出。
解决方法是通过以下方式阻止重定向:
rvest::submit_form(...,
httr::config(followlocation = FALSE))
关于r - 在 R 中使用 rvest 跟踪页面重定向,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29390128/
我正在尝试使用谷歌浏览器的 Trace Event Profiling Tool分析我正在运行的 Node.js 应用程序。选择点样本后,我可以在三种 View 之间进行选择: 自上而下(树) 自上而
对于一个可能是菜鸟的问题,我们深表歉意,但尽管在 SO 上研究了大量教程和其他问题,但仍找不到答案。 我想做的很简单:显示一个包含大量数据库存储字符串的 Android ListView。我所说的“很
我已经开始了一个新元素的工作,并决定给 Foundation 5 一个 bash,看看它是什么样的。在创建带有水平字段的表单时,我在文档中注意到的第一件事是它们使用大量 div 来设置样式。所以我在下
我有一个 Windows 窗体用户控件,其中包含一个使用 BeginInvoke 委托(delegate)调用从单独线程更新的第 3 方图像显示控件。 在繁重的 CPU 负载下,UI 会锁定。当我附加
我有一堆严重依赖dom元素的JS代码。我目前使用的测试解决方案依赖于 Selenium ,但 AFAIK 无法正确评估 js 错误(addScript 错误不会导致您的测试失败,而 getEval 会
我正在制作一款基于滚动 2D map /图 block 的游戏。每个图 block (存储为图 block [21][11] - 每个 map 总共 231 个图 block )最多可以包含 21 个
考虑到以下情况,我是前端初学者: 某个 HTML 页面应该包含一个沉重的图像(例如 - 动画 gif),但我不想强制客户缓慢地等待它完全下载才能享受一个漂亮的页面,而是我更愿意给他看一个轻量级图像(例
我正在设计一个小软件,其中包括: 在互联网上获取资源, 一些用户交互(资源的快速编辑), 一些处理。 我想使用许多资源(它们都列在列表中)来这样做。每个都独立于其他。由于编辑部分很累,我想让用户(可能
我想比较两个理论场景。为了问题的目的,我简化了案例。但基本上它是您典型的生产者消费者场景。 (我关注的是消费者)。 我有一个很大的Queue dataQueue我必须将其传输给多个客户端。 那么让我们
我有一个二元分类问题,标签 0 和 1(少数)存在巨大不平衡。由于测试集带有标签 1 的行太少,因此我将训练测试设置为至少 70-30 或 60-40,因此仍然有重要的观察结果。由于我没有过多地衡量准
我是一名优秀的程序员,十分优秀!