【问题标题】:Using regular expressions in the `html_nodes` function of the rvest package在 rvest 包的 `html_nodes` 函数中使用正则表达式
【发布时间】:2021-06-18 09:54:35
【问题描述】:

我正在尝试创建一个使用 html_nodes 包中的 html_nodes 函数的函数。我的函数接受任何媒体(博客/发布平台)博客主页的 URL。它将生成指向该特定 Medium 博客上每个单独帖子/文章的链接,并将其保存在列表中。

但是,每个 Medium 博客的设计都不同。因此,SelectorGadget 生成的 css 也会有所不同。有什么方法可以使用正则表达式,特别是管道(“|”)符号来捕获不同的 OR,这样我的函数就可以智能地捕获到任何给定 Medium 博客上每个单独帖子/文章的链接。

我的功能如下:

get_url_suffix <- function(url) {
  url_suffix <- read_html(url) %>%
    html_nodes(".u-borderLighter|.gc .bv") %>%
    html_attr("href") %>%
    as.data.frame()
  
  return(url_suffix)
}

.u-borderLighter.gc .bv 是我在 Medium 博客中遇到的两个示例,我打算抓取它们的链接(单独使用时抓取成功)。

谢谢!

【问题讨论】:

    标签: r regex web-scraping rvest


    【解决方案1】:

    在这种情况下,您应该可以像这样使用 CSS 选择器:

    html_elements(".u-borderLighter, .gc .bv")
    

    (请注意,html_nodes() 已弃用并由html_elements() 替换。)

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2014-02-19
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2020-09-14
      相关资源
      最近更新 更多