我正在收集網頁上的所有圖像。但是,因爲可能有一些圖標.png
也被視爲圖像。在頁面上獲取最相關的圖像
這對我來說可能只顯示真實圖像,而不是頁面上的圖標或圖標?
這裏是我的簡單的腳本
function get_logo($html,$url)
{
$url = rtrim($url, '/');
if (strpos($url,'wikipedia') !== false)
return "http://upload.wikimedia.org/wikipedia/commons/5/53/Wikipedia-logo-en-big.png";
else if(preg_match_all('/\bhttps?:\/\/\S+(?:png|jpg)\b/', $html, $matches))
{
return $matches;
}
else
{
preg_match_all("/<img src=\"(.*?)\"/", $html, $matches);
return $url.''.$matches[1][0];
}
}
結果之一:
array (size=1)
0 =>
array (size=16)
0 => string 'http://cdn.sstatic.net/stackoverflow/img/[email protected]' (length=63)
1 => string 'http://i.stack.imgur.com/tKsDb.png' (length=34)
2 => string 'http://i.stack.imgur.com/tKsDb.png' (length=34)
3 => string 'http://i.stack.imgur.com/tKsDb.png' (length=34)
4 => string 'http://i.stack.imgur.com/uE37r.png' (length=34)
5 => string 'http://i.stack.imgur.com/tKsDb.png' (length=34)
6 => string 'http://i.stack.imgur.com/tKsDb.png' (length=34)
7 => string 'http://i.stack.imgur.com/tKsDb.png' (length=34)
8 => string 'http://i.stack.imgur.com/dmHl0.png' (length=34)
9 => string 'http://i.stack.imgur.com/tKsDb.png' (length=34)
10 => string 'http://i.stack.imgur.com/dmHl0.png' (length=34)
11 => string 'http://i.stack.imgur.com/tKsDb.png' (length=34)
12 => string 'http://i.stack.imgur.com/uE37r.png' (length=34)
13 => string 'http://i.stack.imgur.com/NG6TX.png' (length=34)
14 => string 'http://i.stack.imgur.com/BfCOt.png' (length=34)
15 => string 'http://i.stack.imgur.com/tKsDb.png' (length=34)
您對「真實」圖像與圖標的定義究竟是什麼? –
圖像位置也很重要,如果它位於頂部 - 可能是徽標,如果是底部 - 某些隨機圖像,則不需要。另外嘗試忽略頁眉,頁腳,側邊欄,廣告元素。並找到有很多文字的主要區塊,並嘗試拍攝第一張圖像 - 這是您想要的圖像。 – ViliusL
@PatrickQ:真實圖像是作爲內容的一部分出現在頁面上的一般圖像。圖標屬於favicon,視頻圖標(如http://i.stack.imgur.com/NG6TX.png,http://i.stack.imgur.com/tKsDb.png),圖片評分等。我給出了樣本這樣的圖像的列表也 – user123