R-表单输入的电子邮件和密码在字段名称中带有方括号

问题描述

我已修改scrape website with hidden csrf token at login with R中的答案以适合我的需求。

我正在开发一个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)