使用 Feedjira 获取 Feed 源 Gem
Get Feeds source with Feedjira Gem
我使用 Feedjira Gem (Rails) 来 fetch/grab 来自几个网站的 rss-feeds。一切正常,但唯一困扰我很长时间的是源代码(我从中获取 rss 的网站)。
我想向用户显示 rss 来自哪个网站。现在,我抓取了整个 url,但我只想抓取 www 之后和 .com 之前的内容。无论如何,我可以让它工作,或者我可以从 rss 文件中获取提要源。
我在 rss 文件中看到这个,但无法获取它。
<channel>
<link>http://www.domain.com/</link>
这是我的整个模型。
class FeedEntry < ActiveRecord::Base
acts_as_punchable
def self.update_from_feed(feed_url)
feed = Feedjira::Feed.fetch_and_parse(feed_url)
add_entries(feed.entries)
end
private
def self.add_entries(entries)
entries.each do |entry|
unless exists? :guid => entry.id
create!(
:name => entry.title,
:url => entry.url,
:guid => entry.id,
:source => entry.url,
:summary => entry.summary,
:published_at => entry.published,
)
end
end
end
end
提前致谢!
可以通过
获取源码
feed = Feedjira::Feed.fetch_and_parse(feed_url)
source = feed.url # -> http://www.domain.com/
要抓取 www 之后和 .com 之前的内容,您可以这样做
source = URI.parse(feed.url).host.split('.')[-2] # -> domain
现在,我们开始
def self.update_from_feed(feed_url)
feed = Feedjira::Feed.fetch_and_parse(feed_url)
source = URI.parse(feed.url).host.split('.')[-2]
add_entries(feed.entries, source)
end
private
def self.add_entries(entries, source)
entries.each do |entry|
unless exists? :guid => entry.id
create!(
:name => entry.title,
:url => entry.url,
:guid => entry.id,
:source => source,
:summary => entry.summary,
:published_at => entry.published,
)
end
end
end
会成功的!
我使用 Feedjira Gem (Rails) 来 fetch/grab 来自几个网站的 rss-feeds。一切正常,但唯一困扰我很长时间的是源代码(我从中获取 rss 的网站)。
我想向用户显示 rss 来自哪个网站。现在,我抓取了整个 url,但我只想抓取 www 之后和 .com 之前的内容。无论如何,我可以让它工作,或者我可以从 rss 文件中获取提要源。
我在 rss 文件中看到这个,但无法获取它。
<channel>
<link>http://www.domain.com/</link>
这是我的整个模型。
class FeedEntry < ActiveRecord::Base
acts_as_punchable
def self.update_from_feed(feed_url)
feed = Feedjira::Feed.fetch_and_parse(feed_url)
add_entries(feed.entries)
end
private
def self.add_entries(entries)
entries.each do |entry|
unless exists? :guid => entry.id
create!(
:name => entry.title,
:url => entry.url,
:guid => entry.id,
:source => entry.url,
:summary => entry.summary,
:published_at => entry.published,
)
end
end
end
end
提前致谢!
可以通过
获取源码feed = Feedjira::Feed.fetch_and_parse(feed_url)
source = feed.url # -> http://www.domain.com/
要抓取 www 之后和 .com 之前的内容,您可以这样做
source = URI.parse(feed.url).host.split('.')[-2] # -> domain
现在,我们开始
def self.update_from_feed(feed_url)
feed = Feedjira::Feed.fetch_and_parse(feed_url)
source = URI.parse(feed.url).host.split('.')[-2]
add_entries(feed.entries, source)
end
private
def self.add_entries(entries, source)
entries.each do |entry|
unless exists? :guid => entry.id
create!(
:name => entry.title,
:url => entry.url,
:guid => entry.id,
:source => source,
:summary => entry.summary,
:published_at => entry.published,
)
end
end
end
会成功的!