html - R - 如何从 XML 节点集中提取项目?

标签 html r xml web-scraping nodes

我有一个包含 438 个投手名字的列表,看起来像这样(在 XML 节点集中):

> pitcherlinks[[1]]
<td class="left " data-append-csv="abadfe01" data-stat="player" csk="Abad,Fernando0.01">
  <a href="/players/a/abadfe01.shtml">Fernando Abad</a>*
</td> 

> pitcherlinks[[2]]
<td class="left " data-append-csv="adlemti01" data-stat="player" csk="Adleman,Tim0.01">
  <a href="/players/a/adlemti01.shtml">Tim Adleman</a>
</td> 

我如何提取像 Fernando Abad 这样的名字和像 /players/a/abadfe01.shtml 这样的关联链接

最佳答案

由于您有一个列表,因此可以使用一个应用函数遍历该列表。每个函数都使用 read_html 解析列表中的 hmtl 片段,使用 CSS 选择器 a 查找 anchor (链接)。名称来自 html_text 并且链接在属性 href

library(rvest)
pitcherlinks <- list()
pitcherlinks[[1]] <- 
'<td class="left " data-append-csv="abadfe01" data-stat="player" csk="Abad,Fernando0.01">
  <a href="/players/a/abadfe01.shtml">Fernando Abad</a>*
    </td>'

pitcherlinks[[2]] <- 
  '<td class="left " data-append-csv="adlemti01" data-stat="player" csk="Adleman,Tim0.01">
    <a href="/players/a/adlemti01.shtml">Tim Adleman</a>
      </td>'

names <- sapply(pitcherlinks, function(x) {x %>% read_html() %>% html_nodes("a") %>% html_text()})
links <- sapply(pitcherlinks, function(x) {x %>% read_html() %>% html_nodes("a") %>% html_attr("href")})

names
# [1] "Fernando Abad" "Tim Adleman"  
links
# [1] "/players/a/abadfe01.shtml"  "/players/a/adlemti01.shtml"

关于html - R - 如何从 XML 节点集中提取项目?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43598427/

相关文章:

r - Shiny 的复选框组更改框的大小

python - 在 python 中使用 argparse 将 csv 转换为 xml

java - 广播 Intent 不起作用?

xml - 从纯文本文件自动创建分章符和标题?

css - <nav> 标签,所有浏览器都支持吗?

javascript - 当我点击删除按钮而不是我要删除的特定元素时,总是第一个元素被删除

html - CSS 流体布局和放置 div

python - 如何理解 Yahoo! 的原始 HTML使用 Python 检索数据时的财务状况?

用于面板数据的 PLM 的 R 包替代方案

r - 使用配方和插入符的 preProcess 进行预处理的差异