Ошибка при использовании R и httr для получения содержимого страницы: http://www2.bmf.com.br/pages/portal/bmfbovespa/lumis/lum-tipo-de-participante-ptBR.asp - PullRequest
0 голосов
/ 02 июня 2018

Я хочу получить содержимое страницы http://www2.bmf.com.br/pages/portal/bmfbovespa/lumis/lum-tipo-de-participante-ptBR.asp

Когда я копирую и вставляю этот URL в расположение моего браузера, я получаю полное содержимое страницы.

Однако мне не удается использовать пакет R и httr, используя оба метода POST (отправка параметра «dData1») и метод GET.

Метод POST, передающий параметр «dData1»

library(httr);

url="http://www2.bmf.com.br/pages/portal/bmfbovespa/lumis/lum-tipo-de-participante-ptBR.asp";
body = list(dData1="16/05/2018");
POST(url, body = body, encode = "form", verbose());

результат:

-> POST /pages/portal/bmfbovespa/lumis/lum-tipo-de-participante-ptBR.asp HTTP/1.1
-> Host: www2.bmf.com.br
 (...omitted...)
-> 
>> dData1=16%2F05%2F2018

<- HTTP/1.1 200 OK
(...omitted...)
<- 
Response [http://www2.bmf.com.br/pages/portal/bmfbovespa/lumis/lum-tipo-de-participante-ptBR.asp]
  Date: 2018-06-02 16:28
  Status: 200
  Content-Type: text/html
  Size: 111 kB
NA

Даже когда я попробовал простой GET, я не смог получить содержимое страницы:

library(httr);

url="http://www2.bmf.com.br/pages/portal/bmfbovespa/lumis/lum-tipo-de-participante-ptBR.asp";

GET(url,verbose())

И результат:

-> GET /pages/portal/bmfbovespa/lumis/lum-tipo-de-participante-ptBR.asp HTTP/1.1
(...omitted...)
-> 
<- HTTP/1.1 200 OK
(...omitted...)
<- 
Response [http://www2.bmf.com.br/pages/portal/bmfbovespa/lumis/lum-tipo-de-participante-ptBR.asp]
  Date: 2018-06-02 16:33
  Status: 200
  Content-Type: text/html
  Size: 140 kB
NA

Я уже проверил заголовок запроса с помощью инструментов разработки браузера, но мне не удалось выяснить, что я делаю неправильно, и я не смог получить содержимое этой страницы.Любая подсказка будет оценена.

1 Ответ

0 голосов
/ 02 июня 2018

Этот веб-сайт не имеет кодировки UTF-8, поэтому вам нужно найти правильную кодировку и настроить ее для анализа содержимого:

enter image description here

my_url <- "http://www2.bmf.com.br/pages/portal/bmfbovespa/lumis/lum-tipo-de-participante-ptBR.asp"
response <- GET(my_url)
response
content(response,as = "parsed",encoding = "iso-8859-1")

Результат:

> content(response,as = "parsed",encoding = "iso-8859-1")
{xml_document}
<html class="no-js" lang="pt-br">
    [1] <head>\n<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">\n<meta name="viewport" content="width=device-width, initial-scale=1.0">\n<link rel=" ...
[2] <body>\n<!-- Google Tag Manager -->\r\n<noscript><iframe src="//www.googletagmanager.com/ns.html?id=GTM-KPF8G3" height="0" width="0" style="display:none;visibil ...
...