gpt4 book ai didi

R - 使用 rvest 将 html_node 限制为 html_nodes 结果的元素

转载 作者:行者123 更新时间:2023-12-02 01:41:11 24 4
gpt4 key购买 nike

我正在使用 rvest做网络抓取 - 为了试用,我正在从 IMDB 抓取电影的评论分数。在这个例子中,我试图从 this site 获取所有评论和相关用户名。 .请注意,并非所有评论都有星级评分 - 我想要的只是有星级评分的评论。

我的起始代码:

library(rvest)
library(magrittr)

id = "0000001"
reviews = paste0("http://www.imdb.com/title/tt",id,"/reviews-index?start=0;count=10000000") %>%
html() %>%
html_nodes(xpath='//td[contains(@class, "comment-summary")]')

这将完全按照我的预期返回 11 条评论的列表(这部电影有 11 条评论)。

当我然后尝试浏览此列表以检查是否存在星级时,我得到了意想不到的结果。
reviews %>%
.[[1]] %>%
html_node(xpath='//img[contains(@width,"102")]')

这产生
<img width="102" height="12" alt="10/10" src="http://i.media-imdb.com/images/showtimes/100.gif"/>

但第一条评论实际上只包含:
<td class="comment-summary">
<a href="/user/ur0093335/"><img class="avatar" src="http://ia.media-imdb.com/images/M/MV5BMjI2NDEyMjYyMF5BMl5BanBnXkFtZTcwMzM3MDk0OQ@@._SX40_SY40_SS40_.jpg" height="width="/></a>
<h2><a href="reviews?count=10000000&amp;start=0">one-shot record of a belly dancer</a></h2>

<b>Author:</b>
<a href="/user/ur0093335/">Brian Fuller (bfuller@montreat.edu)</a>
<small>on 12 August 1998</small>
</td>
img子集中不存在我的代码返回的值。 我如何才能真正对 html 进行子集化以进行后续 html_node()操作的方式应该是直观的吗?

最佳答案

在 xpath 中,//表示搜索文档中的任何位置。你需要用 . anchor 定它:

reviews %>%
.[[1]] %>%
html_node(xpath='.//img[contains(@width,"102")]')
#> NULL

关于R - 使用 rvest 将 html_node 限制为 html_nodes 结果的元素,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28532870/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com