R httr POST запрос на вход
Я пытаюсь войти в bondora.com с помощью запроса R httr POST, потому что этот сайт не использует аутентификацию:
library(httr)
login <- "https://www.bondora.com/en/login"
pars <- list(
username = "MyUserName",
password = "MyPassword"
)
POST(login, body = pars)
После входа в систему веб-сайт направляет пользователя обратно на целевую страницу bondora.com/en/home, но вместо этого, если я анализирую запрос POST, я получаю такой же заголовок для страницы, как и со страницы входа в систему:
library(XML)
test <- POST(login, body = pars)
test <- content(test, as = "text")
parsedHtml <- htmlParse(test, asText = TRUE)
xpathSApply(parsedHtml, "//title", xmlValue)
[1] "Join or log in|Loans and investing|Bondora"
Я пытался использовать ту же технику на некоторых других сайтах, и она работала вполне нормально, за исключением этого сайта. Вывод команды POST выглядит следующим образом:
POST(login, body = pars)
Response [https://www.bondora.com/en/login]
Status: 200
Content-type: text/html; charset=utf-8
<!DOCTYPE HTML>
<html xmlns="http://www.w3.org/1999/xhtml">
...
Есть ли какие-то особые настройки, которые я должен использовать для входа на bondora.com/en/login?
ОБНОВЛЕНИЕ 1 Согласно комментарию @hadley, я устал устанавливать многозначные значения ИСТИНА и ЛОЖЬ, но не помогаю. Затем я проверил запрос через браузер и добавил тот же заголовок:
login <- "https://www.bondora.com/en/authenticate"
pars <- list(
username = "username",
password = "password"
)
headers <- list(
"User-Agent" = "Mozilla/5.0 (X11; Ubuntu; Linux x86_64; rv:28.0) Gecko/20100101 Firefox/28.0",
"Referer" = "https://www.bondora.com/en/login?returnurl=/en/home",
"Host" = "www.bondora.com",
"Connection" = "keep-alive",
"Accept-Language" = "en-US,en;q=0.5",
"Accept-Encoding" = "gzip, deflate",
"Accept" = "text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8"
)
POST(login, body = pars, add_headers(.headers = character(headers)))
Error in character(headers) : invalid 'length' argument
Кажется, что мне нужно было бы указать аргумент длины, как указала ошибка HTML 411. Как мне это сделать? Я также попытался добавить Content-Length = 9844
в заголовок запроса, как это было в заголовке ответа, но также не удалось.