我是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]。“
需要抓取的信息在网站的右侧。
谢谢。
答案 0 :(得分:1)
不幸的是,您无法使用此策略解决此问题。主网站很复杂,并打开了几个文件。您会注意到其中一个文件是http://www.sap.sp.gov.br/js/dados-unidades.js。该js脚本将加载您需要的所有信息,但是您将不得不使用字符串函数清除该信息。