gpt4 book ai didi

ruby - 使用 Nokogiri 从提要中提取 URL

转载 作者:太空宇宙 更新时间:2023-11-03 17:39:51 24 4
gpt4 key购买 nike

假设我在文档中有这个:

<entry>
<link rel="replies" type="application/atom+xml" href="http://www.url.com/feeds/1/comments/default" title="Comments"/>
<link rel="alternate" type="text/html" href="http://www.url.com/a_blog_post.html" title="A Blog Post"/>
</entry>

<entry>
<link rel="replies" type="application/atom+xml" href="http://www.url.com/feeds/2/comments/default" title="Comments"/>
<link rel="alternate" type="text/html" href="http://www.url.com/another_blog_post.html" title="Another Blog Post"/>
</entry>

我正在尝试使用 Nokogiri 来提取每篇博文的 URL,但我显然做错了(我是编程新手,无法理解 nokogiri)

这是我所拥有的:

require 'nokogiri'
require 'open-uri'

def get_posts(url)
posts = []
doc = Nokogiri::HTML(open(url))
doc.css('entry.alternate').each do |e|
puts e['href']
posts << e['href']
end
return posts
end

puts "Enter feed url:"
url = gets.chomp
posts = get_posts(url)
puts posts.to_s

任何帮助都会很棒!我开始做这件小事是为了更好地学习编程,但我被卡住了。我目前的输出是 []

最佳答案

您的 CSS 选择器有误,entry.alternate将选择所有具有备用类的条目元素(类似于 <entry class="alternate" /> )。

我想你想选择所有 link具有 rel 的元素值为 alternate 的属性.这个的 CSS 选择器是 link[rel=alternate] .所以像这样更改您的代码:

doc.css('link[rel=alternate]').each do |e|
puts e['href']
posts << e['href']
end

您可以在此处阅读有关 CSS 选择器的更多信息:http://www.w3.org/TR/CSS2/selector.html .

关于ruby - 使用 Nokogiri 从提要中提取 URL,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7066056/

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