Ошибка xpath_search после попытки очистить веб-сайт с помощью xml_find_all

Я новичок в R. Я пытаюсь очистить общедоступный веб-сайт, содержащий количество заключенных и вакансий в тюрьмах в штате Сан-Паулу в Бразилии. Я журналист, и я попросил у государства эти данные, но они не захотели мне их предоставить.

Я не могу получить данные даже при использовании xml_find_all(). Как я могу парсить сайт?

url <- "http://www.sap.sp.gov.br/"

data <- url %>%
  httr::GET() %>%
  xml2::read_html() %>%
  xml2::xml_find_all(url, '//*[@id="wrap"]/div/ul/ul/li[3]/div/div/span[1]/b')

Выполняя приведенный выше код, я получаю следующую ошибку:

«Ошибка в xpath_search (x $ node, x $ doc, xpath = xpath, nsMap = ns, num_results = Inf): несовместимо с STRSXP: [type = NULL]».

Информация, которую необходимо очистить, находится в правой части веб-сайта.

  1. Доступ к URL-адресу;
  2. Нажмите на «Альваро де Карвалью»;
  3. Получите числа после «Capacidade» (вместимость) и «População» (население) в каждой тюрьме (например, «Альваро де Карвалью», «Андрадина», «Араракуара» и т. д.).

Спасибо.


person polo    schedule 09.04.2019    source источник


Ответы (1)


К сожалению, вы не можете решить эту проблему, используя эту стратегию. Основной сайт сложен и открывает пару файлов. Вы можете заметить, что один из файлов — http://www.sap.sp.gov.br/js/dados-unidades.js . Этот js-скрипт загрузит всю необходимую вам информацию, но вам придется очищать информацию строковыми функциями.

person Guilherme Jardim Duarte    schedule 11.04.2019