【问题标题】:How do I craw hyperlinks from a website using RVEST?如何使用 RVEST 从网站抓取超链接?
【发布时间】:2021-03-31 01:53:00
【问题描述】:

我在尝试从新闻网站抓取所有链接网址时遇到问题。

https://www.lightreading.com/archives.asp?section_id=120&piddl_month=12&piddl_year=2020

这是站点链接,我正在尝试抓取文章标题上的所有超链接 URL。 下面是我想出的代码 - 认为 '.card-title' 是一个类,而 'href' 是一个属性,

library(httr)
library(rvest)
library(readr)

url <- paste('https://www.lightreading.com/archives.asp?section_id=120&piddl_month=12&piddl_year=2020')

data_url <- read_html(url) %>%
  html_nodes('.card-title') %>%
  html_attr("href") %>%
  html_text()

UseMethod("xml_text") 中的错误: 没有适用于“字符”类对象的“xml_text”方法

这是我收到的错误消息。我做错了什么?

【问题讨论】:

    标签: r web-crawler rvest


    【解决方案1】:

    错误是因为你已经有一个字符向量,而不是文档/节点/节点集,返回:

    read_html(url) %>%
      html_nodes('.card-title') %>%
      html_attr("href")
    

    在此之后,您尝试的附加 hml 节点方法调用 html_text() 因此会引发错误。只需删除最后的通话并保留为:

    library(httr)
    library(rvest)
    library(readr)
    
    url <- paste('https://www.lightreading.com/archives.asp?section_id=120&piddl_month=12&piddl_year=2020')
    
    data_url <- read_html(url) %>%
      html_nodes('.card-title') %>%
      html_attr("href")
    

    来自documentation

    html_text() 提取节点内的文本

    预计会被调用:

    参数:x 文档、节点或节点集。

    【讨论】:

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