【发布时间】:2025-12-18 12:20:03
【问题描述】:
我正在从一系列网站(如 reddit.com)中提取用户 cmets,而 Youtube 对我来说也是另一个丰富的信息来源。我现有的刮板是用 R 编写的:
# x is the url
html = getURL(x)
doc = htmlParse(html, asText=TRUE)
txt = xpathSApply(doc,
//body//text()[not(ancestor::script)][not(ancestor::style)][not(ancestor::noscript)]",xmlValue)
这不适用于 Youtube 数据,事实上,如果您查看像 this 这样的 Youtube 视频源,您会发现源中没有出现 cmets。
有人对如何在这种情况下提取数据有任何建议吗?
非常感谢!
【问题讨论】:
-
它们可能是在页面加载后通过 javascript 下载的。您可以使用 Chrome 开发者工具在不同的 URL 上查找对 cmets 的请求,或者使用像
RSelenium这样的包,它可以与浏览器交互以在页面上执行 javascript。 -
您应该为此使用 Youtube 的 api - 它会为您提供更加一致的结果,并会在更改时警告您。您可以在developers.google.com/youtube/articles/changes_to_comments 或*.com/questions/19965856/… 阅读有关它的信息
-
非常感谢大家,通过 waternova 的链接,我发现使用以下 URL(其中 VID = 视频 ID)可以满足我的需求:
https://gdata.youtube.com/feeds/api/videos/VID/comments?orderby=publishedCheers! -
@de1pher,请随意回答您自己的问题(并接受它),以免它留在未回答的队列中。
标签: xpath youtube web-scraping