使用xml的网页抓取价格

问题描述 投票:0回答:1

我正在尝试以下操作:13.486Kč来自:https://www.aofis.cz/informace-pro-klienty/elba-opf/

由于某种原因,以下代码似乎找不到该数字。我是一个新手,所以也许是因为xml_find_all中的字符串错误。任何人都可以看看为什么吗?

library(xml)
library(xml2)

page <- "https://www.aofis.cz/informace-pro-klienty/elba-opf/"  
read_page <- read_html(page)

Price <- read_page %>% 
  rvest::html_nodes('page-content') %>%
  xml2::xml_find_all("//strong[contains(@class 'sg_selected')]") %>% 
  rvest::html_text()

Price

谢谢!迈克尔

r xml web-scraping rvest xml2
1个回答
0
投票

您在浏览器开发人员面板(或选择器小工具)中看到的html代码与传递到R会话的内容不同。它实际上是一个javascript文件,然后可以构建网页。这就是为什么您的rvest调用未找到正确的html节点:您正在处理的字符串中没有html节点

有几种获取所需信息的不同方法,但最好的方法是仅使用regex从javascript代码中获取货币值:

page <- "https://www.aofis.cz/informace-pro-klienty/elba-opf/"  
read_page <- httr::content(httr::GET(page), "text")
stringr::str_extract_all(read_page, "\\d+\\.\\d+ K")[[1]][1]
#> [1] "13.486 K"
© www.soinside.com 2019 - 2024. All rights reserved.