Я пытаюсь зайти на сайт 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, предназначенные для предотвращения клик-джеккинга, вызывают проблемы?,Я в полной растерянности и был бы признателен за некоторые советы.