我是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]。”
需要删除的信息位于网站的右侧。
谢谢。
不幸的是,使用此策略无法解决此问题。主要网站很复杂,并打开几个文件。您可以注意到其中一个文件是http://www.sap.sp.gov.br/js/dados-unidades.js。此js脚本将加载您需要的所有信息,但您必须使用字符串函数清除信息。