Как мне извлечь изображение с сайта в мой проект rails?

0

Я очень новичок в Ruby на рельсах. Я делаю веб-приложение, в котором я должен получать RSS-каналы с новостных сайтов, которые я сделал с помощью gem feedzirra. Я думал об извлечении изображений из каждого URL-адреса канала и публикации его в своем приложении. Но я не знаю, какой драгоценный камень будет подходящим только для извлечения изображений с разных сайтов. Я думал об использовании нокогири или opengraph, но я не знаю, как это сделать. Может кто-нибудь, пожалуйста, проведет меня. спасибо

Я хочу сделать что-то вроде этого:

 <% @feed = Feedzirra::Feed.fetch_and_parse("http://feeds.bbci.co.uk/news/rss.xml") %>
 <% @feed.inspect %> 
 <% @entries = @feed.entries %>
 <% for i in 0..9 %> 
 <br>
 <b><u><%= @entries[i].title %></u></b>
 </br>
 <br>
 **<%= get image from @entries[i].url %> \\ how can i do this ?**
 </br>
 <% end %>
  • 0
    Извлечение изображений из каждого канала может прямо нарушить авторские права, что может быть очень дорогостоящим. Тщательно обдумайте это. Кроме того, НЕ ставьте эту логику в поле зрения. Он должен находиться в контроллере, где он предварительно обрабатывается, и только готовые данные передаются в представление. Если вы поместите его в представление, это приведет к зависанию браузера этого пользователя, в то время как ваш код пытается получить информацию с какого-то удаленного сайта. Ваше приложение и его дисплей будут зависать до его завершения. Это также было бы отличным способом для DOS вашей системы, замедляя отклик.
  • 0
    Спасибо, я перенесу код на контроллер.

1 ответ

1

Это может быть достигнуто с помощью помощника ActionView image_tag, который в этом случае создаст тэг html img для внешнего URL:

...
<% @entries.each do |entry| %>
  <%= entry.title %>
  <%= image_tag(entry.url) %>
<% end %>

Кроме того, пожалуйста, учтите более рубиновый способ итерации через элементы массива, которые я представил выше.

Если вы хотите перебрать первые 10 элементов, а не весь массив (как в вашем примере), вы можете сделать это следующим образом:

<% @entries[0..9].each do |entry| %>
  <%= entry.title %>
  <%= image_tag(entry.url) %>
<% end %> 

Редактировать:

Похоже, вы можете получить img-тег из резюме резюме с помощью Nokogiri, не проверили его самостоятельно, но вы должны проверить это сообщение в блоге: http://verboselogging.com/2009/05/24/rss-fun-with-feedzirra

  • 0
    Спасибо, ваш ответ. Я сделал именно то, что вы сказали, но все равно изображение не отображается. На самом деле, когда мы передаем entry.url в image_tag, он не распознает изображение в URL и поэтому не отображает его. Я думаю, что мы должны передать ссылку на изображение в image_tag, но как это получить?
  • 0
    Ну, вы правы, вот как работает image_tag . Я предположил, что entry.url хранит прямую ссылку на изображение, это единственный способ заставить его работать таким образом (например, <%= image_tag 'http://example.com/pic.jpg' %> ).
Показать ещё 2 комментария

Ещё вопросы

Сообщество Overcoder
Наверх
Меню