У меня есть функция, которая возвращает все ссылки img любой веб-страницы, но я хочу взять изображение, которое лучше всего представляет новость. Я знаю, что это немного сложный вопрос, но в каждой статье новостей есть главный образ статьи. Мне нужно выбрать его среди всех других изображений. Facebook и reddit, подобные сайтам, могут это сделать. У вас есть какая-то идея? Когда участники моего сайта поделились ссылкой, для этого должна быть картинка. Я могу взять весь URL-адрес изображений на веб-странице, теперь мне нужно найти основное изображение. :)Получение основного изображения с другого URL-адреса?
function get_links($url) {
$xml = new DOMDocument();
libxml_use_internal_errors(true);
$html = file_get_contents($url);
if(!$xml->loadHTML($html)) {
$errors="";
foreach (libxml_get_errors() as $error) {
$errors.=$error->message."<br/>";
}
libxml_clear_errors();
print "libxml errors:<br>$errors";
return;
}
// Empty array to hold all links to return
$links = array();
//Loop through each <img> tag in the dom and add it to the link array
foreach ($xml->getElementsByTagName('img') as $link) {
$url = $link->getAttribute('src');
if (!empty($url)) {
$links[] = $link->getAttribute('src');
}
}
//Return the links
return $links;
}
Look ИНТ o [Открыть график] (http://ogp.me/), если эти метатеги существуют, может быть разумным использовать их, например '' иначе все, что вам нужно, это атрибуты размера изображения или загрузка содержимого самостоятельно. также вы получите мой голос за использование DOMDocument! – Scuzzy
Если вы идете против чего-то вроде CNN.com, у которого есть согласованная структура статей, я бы начал с консоли, чтобы проверить изображение, которое вы после, и посмотреть, есть ли у него какое-то соглашение об именах. Например, похоже, что в большинстве статей CNN есть контейнер на их основных изображениях со следующим классом: zn zn-large-media zn-body zn-idx-0 zn-has-one-container' Однако я не могу guarentee, это то же самое для всех статей .... – mwilson
CNN - отличный пример использования открытого графика, например [эта статья] (http://edition.cnn.com/2016/07/11/politics/hillary-clinton- bernie-sanders/index.html) имеет следующий тег '' – Scuzzy