使用 xml 的网页抓取价格
Web scraping price with the use of xml
我正在尝试抓取以下内容:13.486 Kč 来自: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
谢谢!!
迈克尔
您在浏览器开发人员面板(或选择器小工具)中看到的 html 代码与传送到 R 会话的内容不同。它实际上是一个 javascript 文件,然后构建网页。这就是为什么您的 rvest
调用没有找到正确的 html 节点:您正在处理的字符串中没有 html 节点!
有几种不同的方法可以获取您想要的信息,但也许最好的方法是使用正则表达式从 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"
我正在尝试抓取以下内容:13.486 Kč 来自: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
谢谢!! 迈克尔
您在浏览器开发人员面板(或选择器小工具)中看到的 html 代码与传送到 R 会话的内容不同。它实际上是一个 javascript 文件,然后构建网页。这就是为什么您的 rvest
调用没有找到正确的 html 节点:您正在处理的字符串中没有 html 节点!
有几种不同的方法可以获取您想要的信息,但也许最好的方法是使用正则表达式从 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"