Я использую метод fetch_and_parse Feedjira для синтаксического анализа RSS-каналов в моем приложении, но некоторые RSS-каналы, которые я им кормит, - это URL-адреса фида, которые перенаправляются на другой URL-адрес фида, и Feedjira не выполняет эти перенаправления, и мой fetch_and_parse терпит неудачу. Есть ли способ заставить Feedjira следовать переадресации RSS?Как получить Feedjira для переадресации?
1
A
ответ
1
Я столкнулся с этой же проблемой, и решить ее вручную выборки каналов (с помощью Фарадея) и вызова FeedJira::Feed.parse
с результирующим XML:
def fetch(host, url)
conn = Faraday.new(:url => host) do |faraday|
faraday.use FaradayMiddleware::FollowRedirects, limit: 3
end
response = conn.get url
return response.body
end
xml = fetch("http://www.npr.org", "/templates/rss/podcast.php?id=510298")
podcast = Feedjira::Feed.parse(xml)
Вы можете также обезьяна-патч метод Feedjira в connection
сделать то же самое вещь, хотя я бы не рекомендовал:
module Feedjira
class Feed
def self.connection(url)
Faraday.new(url: url) do |conn|
conn.use FaradayMiddleware::FollowRedirects, limit: 3
end
end
end
end
podcast = Feedjira::Feed.fetch_and_parse("http://www.npr.org/templates/rss/podcast.php?id=510298")
Вот как я в конечном итоге решил эту проблему давным-давно. Спасибо за ответ! Я забыл обновить этот вопрос. – tommybond