R - Успешный ответ о статусе от rvest, но не вошел в систему - PullRequest
0 голосов
/ 01 мая 2019

Я пытаюсь зайти на сайт Mintel, но пытаюсь понять, почему мой код не работает.

Мой код довольно стандартный:

library(rvest)

login <- "https://portal.mintel.com/portal/login"
pgsession <- html_session(login)
pgform <- html_form(pgsession)[[2]]
filled_form <- set_values(pgform, "auth-username"="xxx", "auth-password"="yyy")
filled_form$url <- ""
pgreturn <- submit_form(pgsession, filled_form, submit="login_button")

, хотя я установил$ URL заполнено в пустое значение, чтобы избежать ошибки, если оставить пустым, т. е. чтобы избежать:

Error in xml2::url_absolute(form$url, session$url) : 
  Not compatible with STRSXP: [type=NULL].

Некоторая особенность сайта не позволяет мне войти в систему, несмотря на отсутствие ошибок, и status_code(pgreturn) дает значение 200,Даже если я намеренно предоставлю неправильный пароль, я все равно получу тот же результат.Возвращенная страница всегда является страницей входа в систему, и я не могу перейти на последующие страницы.

Ответ verbose () указывает на перенаправление 302 и другие вещи, которые могут представлять интерес для тех, кто более осведомлен, чем я:

-> POST /portal/login HTTP/1.1
-> Host: portal.mintel.com
-> User-Agent: libcurl/7.59.0 r-curl/3.3 httr/1.4.0
-> Accept-Encoding: gzip, deflate
-> Cookie: IDP-SSO-Session=ki7boazssrzv0a7fjfzdpb8ggv8mxdzi; csrftoken=OUrB4EdZ8hbjqymEaUJ0GdQDnDCd1f5LmYSe6P25cV64PSDSUbsrcFIpzTXzABeC
-> Accept: application/json, text/xml, application/xml, */*
-> Content-Type: application/x-www-form-urlencoded
-> Content-Length: 204

-> csrfmiddlewaretoken=0gsw00OvOKwLbnXLqA7309z8EXWW3QXkykT92bDBSorwAHeZaRQuwBrUQdhiCc6b&login_view-current_step=auth&auth-username=xxx&auth-password=yyy&login_button=Log%20in

<- HTTP/1.1 302 Moved Temporarily
<- Server: gunicorn/19.9.0
<- Content-Length: 0
<- Content-Language: en
<- Vary: Accept-Language,Cookie,User-Agent
<- Location: /portal/login
<- X-Frame-Options: DENY
<- Content-Type: text/html; charset=utf-8
<- Date: Tue, 30 Apr 2019 23:29:35 GMT
<- Connection: keep-alive
<- Set-Cookie: IDP-SSO-Session=ki7boazssrzv0a7fjfzdpb8ggv8mxdzi; Domain=portal.mintel.com; httponly; Path=/; secure

-> GET /portal/login HTTP/1.1
-> Host: portal.mintel.com
-> User-Agent: libcurl/7.59.0 r-curl/3.3 httr/1.4.0
-> Accept-Encoding: gzip, deflate
-> Referer: https://portal.mintel.com/portal/login
-> Cookie: IDP-SSO-Session=ki7boazssrzv0a7fjfzdpb8ggv8mxdzi; csrftoken=OUrB4EdZ8hbjqymEaUJ0GdQDnDCd1f5LmYSe6P25cV64PSDSUbsrcFIpzTXzABeC
-> Accept: application/json, text/xml, application/xml, */*
-> Content-Type: application/x-www-form-urlencoded

<- HTTP/1.1 200 OK
<- Server: gunicorn/19.9.0
<- Content-Language: en
<- Vary: Cookie,Accept-Language,Accept-Encoding,User-Agent
<- X-Frame-Options: DENY
<- Content-Type: text/html; charset=utf-8
<- Content-Encoding: gzip
<- Content-Length: 6425
<- Expires: Tue, 30 Apr 2019 23:29:35 GMT
<- Cache-Control: max-age=0, no-cache, no-store
<- Pragma: no-cache
<- Date: Tue, 30 Apr 2019 23:29:35 GMT
<- Connection: keep-alive
<- Set-Cookie: csrftoken=OUrB4EdZ8hbjqymEaUJ0GdQDnDCd1f5LmYSe6P25cV64PSDSUbsrcFIpzTXzABeC; expires=Tue, 28-Apr-2020 23:29:35 GMT; Max-Age=31449600; Path=/; secure
<- Set-Cookie: IDP-SSO-Session=ki7boazssrzv0a7fjfzdpb8ggv8mxdzi; Domain=portal.mintel.com; httponly; Path=/; secure

Любые идеи о том, в чем заключается проблема?

Может быть, мне не следует очищать URL-адрес fill_form $ или, возможно, X-Frame-Options, предназначенные для предотвращения клик-джеккинга, вызывают проблемы?,Я в полной растерянности и был бы признателен за некоторые советы.

...