FB извлекает метатеги из HTML.
т.е. при вводе URL-адреса FB отображает заголовок страницы, затем URL-адрес (усеченный) и затем содержимое элемента .
Что касается выбора миниатюр, я думаю, что, возможно, FB выбирает только те, которые превышают определенные размеры, то есть, пропуская графику кнопок, 1px проставки и т. Д.
Редактировать: Я не знаю точно, что вы ищете, но в PHP есть функция для сбора соответствующих данных со страниц.
При этом используется простая библиотека HTML DOM из http://simplehtmldom.sourceforge.net/
Я посмотрел, как это делает FB, и похоже, что очистка выполняется на стороне сервера.
class ScrapedInfo
{
public $url;
public $title;
public $description;
public $imageUrls;
}
function scrapeUrl($url)
{
$info = new ScrapedInfo();
$info->url = $url;
$html = file_get_html($info->url);
//Grab the page title
$info->title = trim($html->find('title', 0)->plaintext);
//Grab the page description
foreach($html->find('meta') as $meta)
if ($meta->name == "description")
$info->description = trim($meta->content);
//Grab the image URLs
$imgArr = array();
foreach($html->find('img') as $element)
{
$rawUrl = $element->src;
//Turn any relative Urls into absolutes
if (substr($rawUrl,0,4)!="http")
$imgArr[] = $url.$rawUrl;
else
$imgArr[] = $rawUrl;
}
$info->imageUrls = $imgArr;
return $info;
}