r - 如何使用 RVEST 从网站抓取超链接?
问题描述
我在尝试从新闻网站抓取所有链接 url 时遇到问题。
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”的适用方法应用于“字符”类的对象
这是我收到的错误消息。我究竟做错了什么?
解决方案
错误是因为您已经有一个字符向量,而不是文档/节点/节点集,由以下方式返回:
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")
从文档:
html_text() 提取节点内的文本
预计将被调用:
参数:
x
文档、节点或节点集。
推荐阅读
- javascript - 如何最小化jquery中的输出值
- angular - 在 Angular 8 中谷歌登录后如何重定向到上一页?
- python - 如何在python gremlin中检索顶点的属性值
- neo4j - 如何在 Neo4J 中引用 ID 作为参数
- postgresql - 使用 codeigniter 为 postgresql 连接的数据库,但是变量 db 在博客控制器的插入命令中无法连接
- python - 从 numpy 数组中删除一些值以正确重塑它们?
- javascript - 我可以打破规则并在客户端使用 firebase-admin 吗?还是试图解决错误是徒劳的?
- applescript - 是否有可以练习的苹果脚本在线编辑器?
- jenkins - 有没有办法在 Jenkins 中向 shell 脚本添加自定义命令行链接?
- scala - Scala类型系统,找不到共同的祖先内联