我想抓取以下网页(允许..):
https://www.bisafans.de/pokedex/listen/numerisch.php
目的是提取如下表格:
我能够抓取表格的编号和名称,但我无法提取类型,因为它们被隐藏为图像标题:
>img src="https://media.bisafans.de/f630aa6/typen/pflanze.png" alt="Pflanze"<
如何在 alt
之后提取名称?我已经尝试过提取整个表格,它只提取数字和名称。另一种方法是 html_attr()
, 但也不起作用。
有人知道我怎样才能做到这一点吗?
最佳答案
使用正确的 css 选择器列表并将数据处理为嵌套 map_dfr(data.frame())
调用中的表行列表,这非常简单。
在 data.frame()
中,您可以利用当 css 选择器列表在 DOM 中不匹配时返回的事实 NA
以确保列长度相等。为每个可能的列条目指定一个选择器列表。
library(tidyverse)
library(rvest)
rows <- read_html("https://www.bisafans.de/pokedex/listen/numerisch.php") %>% html_elements(".table tbody tr")
df <- map_dfr(rows, ~ data.frame(
`Nr.` = .x %>% html_element("td:first-child") %>% html_text(),
`Pokémon` = .x %>% html_element("a") %>% html_text(),
`Type1` = .x %>% html_element("td:last-child > a:nth-child(odd) > img") %>% html_attr("alt"),
`Type2` = .x %>% html_element("td:last-child > a:nth-child(even) > img") %>% html_attr("alt")
))
关于r - 从 rvest R 中的属性中抓取名称(值),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/71619233/