首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >从RSS提要中提取文本时出现问题

从RSS提要中提取文本时出现问题
EN

Stack Overflow用户
提问于 2010-05-27 03:04:51
回答 4查看 606关注 0票数 0

我是Ruby和Rails世界的新手。

我看过rails使用190,所以我才开始使用它。我使用选择器小工具找出CSS和XPath。

我有以下代码..

代码语言:javascript
复制
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页面中提取文本时,我可以在控制台上获得提取的文本。

但是,当我尝试对上面代码中提到的以下URL的RSS Feed使用CSS或XPath执行相同的操作时,我没有得到任何输出。

如何从RSS提要中提取文本??

我还有另一个愚蠢的问题。

有没有办法从2个不同的提要中提取文本并将其显示在控制台上

就像这样

代码语言:javascript
复制
url1 = "http://www.telegraph.co.uk/sport/football/rss"
url2 = "http://www.telegraph.co.uk/sport/cricket/rss"

期待您的帮助和建议

谢谢

Gautam

EN

回答 4

Stack Overflow用户

回答已采纳

发布于 2010-05-27 07:40:55

Rss页面不是HTML文档,它是XML,所以你应该使用Nokogiri::XML(open(url))

然后查看rss页面的源代码。没有<a>元素。

文档中的所有链接都是使用<link>标记创建的:

代码语言:javascript
复制
<link>http://www.telegraph.co.uk/sport/football/world-cup-2010/teams/france/7769203/France-2-Costa-Rica-1-match-report.html</link> 

每篇文章的链接也被复制为<guid>标记,因为文章的ID就是它的URL。

代码语言:javascript
复制
<guid>http://www.telegraph.co.uk/sport/football/world-cup-2010/teams/france/7769203/France-2-Costa-Rica-1-match-report.html</guid> 

因此,如果您需要文档中的所有链接,请使用:

代码语言:javascript
复制
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')

对于许多提要,只需使用循环即可

代码语言:javascript
复制
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
票数 0
EN

Stack Overflow用户

发布于 2010-05-27 08:22:09

如果您正在处理提要,则应该使用Feedzilla

http://railscasts.com/episodes/168-feed-parsing

http://github.com/pauldix/feedzirra

就像一种护身符。

祝好运!

票数 1
EN

Stack Overflow用户

发布于 2010-05-27 07:18:07

您已经安装了libxml2 libxml2-dev libxslt libxslt-dev

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/2915921

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档