从RSS提要中提取文本的问题
问题描述:
我是Ruby和Rails世界的新手。从RSS提要中提取文本的问题
我看过铁轨投了190,我刚开始玩它。我曾经选择的小工具,找出CSS和XPath
我有下面的代码..
require 'rubygems'
require 'nokogiri'
require 'open-uri'
url = "http://www.telegraph.co.uk/sport/football/rss"
doc = Nokogiri::HTML(open(url))
doc.xpath('//a').each do |paragraph|
puts paragraph.text
end
当我用CSS一个普通的HTML页面提取的文本,我能得到在控制台上提取的文本。
但是,当我尝试使用CSS或XPath处理上述代码中提到的以下URL的RSS Feed时,我没有得到任何输出。
如何从RSS提取文本提取?
我也有另一个愚蠢的问题。
有没有办法从2种不同的饲料中提取文本和控制台
像
url1 = "http://www.telegraph.co.uk/sport/football/rss"
url2 = "http://www.telegraph.co.uk/sport/cricket/rss"
期待您的帮助和建议
谢谢
上显示Gautam
答
RSS页面不是HTML文件,它是XML,所以你应该使用Nokogiri::XML(open(url))
然后查看RSS页面的源代码。没有<a>
元素。
文档中的所有链接都与<link>
标签创建:
<link>http://www.telegraph.co.uk/sport/football/world-cup-2010/teams/france/7769203/France-2-Costa-Rica-1-match-report.html</link>
链接到每篇文章也被复制为<guid>
标签,因为文章在RSS ID是它的URL。
<guid>http://www.telegraph.co.uk/sport/football/world-cup-2010/teams/france/7769203/France-2-Costa-Rica-1-match-report.html</guid>
所以,如果你需要在文档中的所有链接,使用:
url = "http://www.telegraph.co.uk/sport/football/rss"
doc = Nokogiri::XML(open(url))
doc.xpath('//link').each do |paragraph|
puts paragraph.text
end
如果你只需要链接的文章,使用doc.xpath('//guid')
对于许多饲料,只使用循环
feeds = ["http://www.telegraph.co.uk/sport/football/rss", "http://www.telegraph.co.uk/sport/cricket/rss"]
feeds.each do |url|
#and here goes code as before
end
答
你有t HESE安装: 的libxml2 的libxml2-dev的 的libxslt的libxslt-dev的
答
如果您正在处理Feed,则应使用Feedzilla
http://railscasts.com/episodes/168-feed-parsing
http://github.com/pauldix/feedzirra
就像一个魅力。
祝你好运!
答
无需环路...只是
puts doc.xpath('//link/text()')
将打印所有链接文本。
我试过使用“.to_s”,但它仍然没有工作! – gkolan 2010-05-26 21:23:18