2010-06-28 122 views
7

我有一對twitter推動的新聞聚合網站。我一直計劃添加我在twitter上發現的文章中的圖片。從網頁中提取*相關*圖片

如果我使用<img>標籤下載頁面並提取圖像,我會得到一堆圖像;不是所有這些與文章有關。例如,捕獲按鈕,圖標,廣告等圖像。如何提取文章附帶的圖像?我知道有一個解決方案 - Facebook鏈接共享器做得很好。

大額牛

重複的:How to find and extract "main" image in website

回答

1

我猜想,Facebook有它支持的各種網站的鏈接提取。有點像id =「content」 - > img(1st)。

猜猜我錯了。似乎Facebook使用Open Graph Protocol來定義哪個圖像(og:圖像)和要使用的元數據。

+0

那麼OGP是Facebook推動的一些東西,以便他們可以準確地提取元數據。不幸的是,大量的網站不遵循這個標準。 – mithun 2010-09-16 11:51:44

3

我覺得這種解決方案有點不好,但對我有用。這是我做什麼來獲取縮略圖。

  1. 說我覺得這頁的標題是:「這是一個標題」
  2. 我用這個作爲查詢到谷歌圖片API,然後提取第一縮略圖我發現。

它實際上對大多數情況下工作得很好。檢查出來爲自己http://cricketfresh.in

大額牛

PS:我覺得這是一個很好的答案。會給予一個更優雅的答案的人的功勞。

7

從頁面下載所有圖像, 黑名單來自廣告服務器的所有圖像。 然後找到一些啓發,這將讓你正確的圖像...

我覺得是這樣的:

  • 最大分辨率+ =點壓頻比
  • 最大文件大小+ = 10分
  • 的JPEG + = 2點

然後採取最點圖像並扔掉其餘遠

可能適用於大多數網站。

(將需要與啓發式雖然有些擺弄)

+0

這是經典的方法,並感謝您把它放在這裏。我有點猶豫要走這條路,因爲我不確定這需要多長時間。就像你說的那樣,經過一些調整後它可能會很好用。我在其他地方找到的更多因素是:1]圖像的路徑。 2]指定寬度和高度的圖像 – mithun 2010-09-16 16:04:33

3

這是一個漫長的時間。但這可能有助於下一次。

您可以使用此API https://urlmeta.org/

它的使用非常簡單,結果是我們所需要的最好的。使用API​​

例如:

<?php 
$url = "http://timesofindia.indiatimes.com/business/india-business/Raghuram-Rajan-not-fit-to-be-RBI-Governor-Subramanian-Swamy/articleshow/52236298.cms"; 

$result = file_get_contents('https://api.urlmeta.org/?url='.$url); 
$array = json_decode($result,1); 
print_r($array['meta']['image']); 

?> 

這就是你所需要的結果。

+0

urlmeta.org非常酷。適用於幾乎所有的電子商務產品頁面。 – vaichidrewar 2016-09-20 21:57:14