我正在使用Nokogiri从网页中提取RSS链接。但是,由于一些网站在其HTML上有绝对路径和其他相对路径,我想这样做是为了使网站具有相对路径时,它将成为绝对路径。提取与Nokogiri的RSS链接
这里是我的代码:
require 'nokogiri'
require 'simple-rss'
require 'open-uri'
ARGV.map! { |http| "http://#{http}"}
ARGV.each do |website|
doc = Nokogiri::HTML(open(website))
rss_path = doc.xpath("//link[@type=\"application/rss+xml\"]").map do |link|
if link['href'] =~ /^http:\/\/[a-z]*\..*\//i
puts link['href']
else
puts "#{website}#{link['href']}"
end
end
所以,如果我是在命令行中,我会键入rubyweekly.com像
ruby rss.rb 8gramgorilla.com rubyweekly.com
的代码工作正常,这对于相对路径它的RSS,但8gramgorilla.com有一个绝对路径,所以我希望它只是立即输出,没有http://8gramgorilla.com/http://8gramgorilla.com/feed作为输出。基本上,发生的事情是IF语句被忽略,它立即转到else语句。
谢谢!我尝试添加\ d并将其简化为“http://”匹配,并且它的功能就像一个魅力。 – steph