Я разместил URL-адрес в фиде, который создал на моем домашнем сервере, чтобы получить все метаданные этого URL-адреса с веб-сайта.
Я просмотрел веб-сайт uk.yahoo.com. Я разместил эту самую ссылку, зная, что у нее есть og: meta для этой страницы под этим самым URL-адресом.
<meta property = "og:image" content = "https://s.yimg.com/dh/ap/default/130909/y_200_a.png">
<meta name = "description" content = "News, email....">
<meta property = "og:title" content = "Yahoo">
но когда я смотрю на свою консоль, он говорит, что массив пуст
libxml_use_internal_errors(true); //
$doc = new DomDocument();
$doc->loadHTML($html);
$xpath = new DOMXPath($doc);
$query = '//*/meta[starts-with(@property, \'og:\')]';
$metas = $xpath->query($query);
$rmetas = array();
foreach($metas as $meta) {
$property = $meta->getAttribute('property');
$content = $meta->getAttribute('content');
$rmetas[$property] = $content;
}
var_dump($rmetas);
Затем я размещаю ссылку на news.yahoo.com, и она становится идеальной для og: meta.
@ Mike'Pomax'Kamermans при печати документа $ doc на моей консоли вообще не показывает: content.
Я не понимаю, почему на одной странице я могу получить данные, а на другой - не на том же сайте.
тогда вы должны исследовать это: сохранить HTML для обеих страниц и написать пятистрочный сценарий, который загружает оба файла, анализирует оба файла и печатает набор тегов. Очистите теги <body> в обоих файлах, чтобы вы просто работали с головой, а затем посмотрите, чем они отличаются.
@mike, честно говоря, я вообще не слежу. Я не совсем понимаю, что вы имеете в виду! Я думал, что файлы уже разобраны? Я вообще не знаю, что делаю. Я не могу найти в сети никого, у кого была бы такая же проблема, и каких-либо примеров, чтобы понять мою проблему.
Я имею в виду, если вы видите два файла HTML, один из которых «работает», а другой «не работает», исследуйте это. Узнайте, в чем их разница, чтобы лучше понять. И вы анализируете теги <meta>, поэтому возьмите эти две HTML-страницы, сохраните их в файлах .html с помощью браузера, curl, wget или чего-то еще, а затем удалите все в теге <body>, потому что все это не имеет отношения к вашей проблеме. Это начало формирования минимальный воспроизводимый пример, который представляет собой важный процесс отладки, который необходимо выполнить, прежде чем вы начнете задавать вопросы: часто вы может находите ответ самостоятельно, если потратите это время.
@ Mike'Pomax'Kamermans Я заставил его работать, изменив несколько строк в моем локоне.
Какая часть? Вы действительно решили проблему со своим вопросом или просто заставили curl захватывать html-страницы? (потому что это просто curl + URL-адрес, а затем вы открываете файл, который он сохраняет в текстовом редакторе, и выбрасываете большую его часть. Не пытайтесь заставить curl сделать это)
Я удалил заголовок [‘’] и добавил реферера, если я правильно помню. Я работаю по ночам, но я опубликую свой ответ на проблему и обновлю свой вопрос, так как это может помочь другим, я просто ищу мета-заголовок и ключевые слова на страницах через завиток по любому заданному URL-адресу.






Шаг 1: не доверяйте себе знать, что делает код, проверять, что делает код. Распечатайте этот
$doc: что в нем? Есть ли у него даже метатеги HTML5, или он их выбросил, потому что они не следовали древним правилам HTML4.1 для самозакрывающихся элементов? Если да, то где они? Ваш xpath вообще работает для этого вложения?