尝试使用“ xml_find_all”抓取网站后出现错误“ xpath_search”

时间:2019-04-09 21:55:45

标签: r web-scraping rvest httr xml2

我是R的新手。我正在尝试抓取public website,其中包含巴西圣保罗州监狱中的囚犯和空缺人数。我是一名记者,我要求国家提供这些信息,但他们不想将其提供给我。

即使使用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. 点击“Álvarode Carvalho”;
  3. 获取“ Capacidade”(容量)和“População”(人口)之后的数字 在每个价格上(例如“Álvarode Carvalho”,“ Andradina”, “ Araraquara”等)。

谢谢。

1 个答案:

答案 0 :(得分:1)

不幸的是,您无法使用此策略解决此问题。主网站很复杂,并打开了几个文件。您会注意到其中一个文件是http://www.sap.sp.gov.br/js/dados-unidades.js。该js脚本将加载您需要的所有信息,但是您将不得不使用字符串函数清除该信息。