【问题标题】:How can I retrieve the main image of a blog post/news article?如何检索博客文章/新闻文章的主图像?
【发布时间】:2010-07-04 06:07:00
【问题描述】:

我创建了一个新闻聚合器Newzupp,我想对其进行修改。现在我只是显示新闻故事的标题,并将它们链接到它们的网址。

我计划通过使用图像+标题而不是普通标题来使其更加图形化。我想知道如何获取每篇文章的主图(有点类似于google news)。

我能想到的一种方法是我可以剥离所有图像并显示指向同一篇文章的图像。但我认为这不会有效。有没有其他方法可以做到这一点?


我已经找到了解决办法。

  1. 获取url [html/xml]的内容
  2. 使用hpricot 抓取内容
  3. 查找所有带有“img”标签的元素
  4. 做一些研究,找出其中哪一个是主要的显示图像。 [如 Wired.com 的 rss 提要中的第 6 张图片]

我仍然认为这是非常低效的。我想知道 Google 新闻等服务如何抓取网站/博客并显示相关图片。

【问题讨论】:

    标签: html ruby-on-rails image


    【解决方案1】:

    也许您可以按图像大小或在 DOM 层次结构中的位置(即最接近主体顶部/紧跟在 h1 标记之后)进行过滤/排序。

    【讨论】:

    • 酷...可能适用于某些网站.. 但就像我说的,如果连线它的第六张图片.. 它与人们在 h1 标签后嵌入谷歌广告的其他网站相同
    【解决方案2】:

    广告主机黑名单怎么样,你会忽略他们的图片?

    由于一般而言,广告托管在其他地方,而与故事相关的图片托管在同一域中,也许您可​​以过滤页面以查找与网站本身具有相同基本 URL 的图片。

    【讨论】:

    • 不错的方法。但是如果文章有多个图像[与文章相关]。那么如何选择主图呢?一种解决方案可能是结合您的两个答案。
    【解决方案3】:

    为什么不将所有抓取的图像(使用 hpricot/nokogiri)转换为方形缩略图图像(使用 rmagick 或类似的,或者只是在服务器端调整它们的大小)并将这些图像分组到主题正文下方的一个 DIV 中.然后,您可以使用带有幻灯片的灯箱,仅在用户单击它们时才显示实际图像。这样它看起来更加图形化,并且仍然不会破坏您网站的外观。找到最相关的图片很棘手。

    【讨论】:

      【解决方案4】:

      您也可以尝试在页面上搜索OpenGraph 元标记。大多数新闻网站都使用og:image 属性来指定文章的主图像。

      例子:

      <meta property="og:image" content="http://ia.media-imdb.com/images/rock.jpg" />
      

      【讨论】:

        猜你喜欢
        • 2011-12-28
        • 1970-01-01
        • 1970-01-01
        • 2018-02-23
        • 1970-01-01
        • 1970-01-01
        • 2015-06-03
        • 2011-12-10
        相关资源
        最近更新 更多