首页 > 解决方案 > 在 r 中使用 html_nodes() 排除注释

问题描述

我正在使用 R 中的包来抓取股票市场价格rvest。我想在使用html_nodes().

以下类出现在网站上的股票价格: [4] <span id="ctl00_ctl00_Content_LeftContent_IssueList_StockList_repIssues_ctl02_DifferenceBlock_lblRelativeDifferenceDown" class="ValueDown">-0,51%</span> [5] <span id="ctl00_ctl00_Content_LeftContent_IssueList_StockList_repIssues_ctl02_ctl02_lblDifference" class="ValueDown Difference">-51%</span>

现在我想只包括之后的文字class="ValueDown",我想排除之后的文字class="ValueDown Difference"

为此,我使用以下代码:

urlIEX <- "https://www.iex.nl/Koersen/Europa_Lokale_Beurzen/Amsterdam/AMX.aspx"
webpageIEX <- read_html(urlIEX)

percentage_change <- webpageIEX %>%
  html_nodes(".ValueDown") %>%
  html_text()

但是,这给了我两个值 -0,51% 和 -51%。有没有办法包含所有内容class="ValueDown"并排除所有内容class="ValueDown Difference"

标签: rweb-scrapingrvest

解决方案


我不是专家,但我认为您应该使用属性选择器:

percentage_change <- webpageIEX %>%
  html_nodes("[class='ValueDown']") %>%
  html_text()

推荐阅读