Я тестирую скрипты веб-scrape в R. Я читал много учебников, документов и пробовал разные вещи, но пока ничего не добился.R веб-скребок с jsessionid
URL-адрес, который я пытаюсь очистить, - this one. Он имеет государственные, правительственные данные и никаких заявлений против веб-скребок. Это на португальском, но я считаю, что это не будет большой проблемой.
Он показывает форму поиска с несколькими полями. Мой тест искал данные из определенного состояния («RJ», в этом случае поле «UF») и город («Рио-де-Жанейро», в поле «MUNICIPIO»). Нажав кнопку "Pesquisar" (Search), он показывает следующий вывод:
Использование Firebug, я нашел URL она вызывает (используя параметры выше):
http://www.dataescolabrasil.inep.gov.br/dataEscolaBrasil/home.seam?buscaForm=buscaForm&codEntidadeDecorate%3AcodEntidadeInput=&noEntidadeDecorate%3AnoEntidadeInput=&descEnderecoDecorate%3AdescEnderecoInput=&estadoDecorate%3A**estadoSelect=33**&municipioDecorate%3A**municipioSelect=3304557**&bairroDecorate%3AbairroInput=&pesquisar.x=42&pesquisar.y=16&javax.faces.ViewState=j_id10
Сайт использует JSESSIONID, как можно увидеть, используя следующие:
library(rvest)
library(httr)
url <- GET("http://www.dataescolabrasil.inep.gov.br/dataEscolaBrasil/")
cookies(url)
Зная это использует JSESSIONID, я использовал печенье (URL), чтобы проверить эту информацию, и использовать его в новый URL например:
url <- read_html("http://www.dataescolabrasil.inep.gov.br/dataEscolaBrasil/home.seam;jsessionid=008142964577DBEC622E6D0C8AF2F034?buscaForm=buscaForm&codEntidadeDecorate%3AcodEntidadeInput=33108064&noEntidadeDecorate%3AnoEntidadeInput=&descEnderecoDecorate%3AdescEnderecoInput=&estadoDecorate%3AestadoSelect=org.jboss.seam.ui.NoSelectionConverter.noSelectionValue&bairroDecorate%3AbairroInput=&pesquisar.x=65&pesquisar.y=8&javax.faces.ViewState=j_id2")
html_text(url)
Ну, на выходе нет данных. На самом деле у него есть сообщение об ошибке. Перевод на английский язык в основном говорит о том, что сессия истекла.
Я предполагаю, что это основная ошибка, но я осмотрелся и не смог найти способ преодолеть это.
Большое спасибо, hrbmstr. Это сработало красиво! –