r - R - 表单输入电子邮件和密码在字段名称中有括号
问题描述
我已经在使用 R 登录时使用隐藏的 csrf 令牌修改了抓取网站的答案,以满足我的需求。
我正在开发一个 R 包,它将自动为注册用户登录到 UNICEF MICS 调查数据集的过程。我在输入表单接受我的用户名和密码时遇到问题。请参阅下面的代码和错误消息。
library("rvest")
library("RCurl")
library("XML")
my.base.uri <- "https://mics.unicef.org"
my.uri <- paste0(my.base.uri, "/visitors/sign-in")
session <- html_session(my.uri)
email <- ""
pass <- ""
# Handling the html_form
form <- html_form(session)[[1]]
form <- set_values(form, email = email, password = pass)
form2 <- set_values(form, visitor.email = email, visitor.password = pass)
# The same error message applies to both attempts using form and form2
# Error: Unknown field names: email, password
<form> 'new_visitor' (POST /visitors/sign-in)
<input hidden> 'utf8': ✓
<input hidden> 'authenticity_token': czKvZKYPQnx6CuJR1/R+g904zI3IDGskP1griNl8MIE=
<input email> 'visitor[email]':
<input password> 'visitor[password]':
<textarea> 'g-recaptcha-response' [0 char]
<input submit> 'commit': Log in
由于表单字段有括号,因此使用预期输入指定表单字段的最佳方法是什么。
我将创建另一个问题以帮助登录系统以解决 Google ReCaptcha。
谢谢你。
解决方案
如果字段名称中有不寻常的字符,只需将名称括在引号中即可。
form <- set_values(form, "visitor[email]" = email, "visitor[password]" = pass)
推荐阅读
- java - 如何将文件写入 ubuntu linux 服务器?爪哇 11
- amazon-web-services - AWS Certificate Manager - 如何为内部 ALB 创建公有证书?
- node.js - Node.js 从 Readable 检查 csv 编码
- pandas - 如何根据索引匹配对数据框中的值求和
- flutter - 如何使用 syncfusion_flutter_calendar 获取选定的月份和选定的日期值
- django - 应用两个人性化数字
- python - 带有 kwargs 移动函数对象的 Python 装饰器类
- bootstrap-5 - Bootstrap 垂直堆叠 2 列
- amazon-web-services - 通过 IAM 策略限制广泛开放的安全组规则访问
- database - 为后端构建一个自动完成 API