1

我有一个 html 文档,我需要抓取某些字符串。该文档是一个 youtube 播放列表。例如:

require 'open-uri'
doc = Nokogiri::HTML(open("https://www.youtube.com/playlist?list=PL11CE9468C379D2C8"))

当我查看 HTML 源代码时,我可以看到我想要的字符串。

<tr class="pl-video yt-uix-tile " data-title="Tyler The Creator - Yonkers" data-video-id="XSbZidsgMfw"

字符串是data-video-id引号中的内容。在这个播放列表中有 7 个视频,因此有 7 个代码示例,每个示例都有不同的data-video-id. 如何循环遍历这些字符串并将其保存到@scraped_id变量中?

id 是使用保存的

 @video = @stream.videos.find_or_initialize_by(url: @scraped_id)
 @video.save
4

1 回答 1

1

您可以使用 CSS 选择器挑选出所有具有data-video-id属性的元素,然后获取该属性的值。

doc.css("[data-video-id]").each do |el|
    @scraped_id = el.attr('data-video-id')
    @video = @stream.videos.find_or_initialize_by(url: @scraped_id)
    @video.save
end
于 2014-06-06T17:59:25.527 回答