Здравствуйте, я пытаюсь создать собственный скрипт в php, который выбирает свойство og: image из массива и затем выводит конкретный результат.Я использовал следующий код
<?php
$_URL = $_GET['url']; //getting the url from THE url value
function getSiteOG( $url, $specificTags=0 ){
$doc = new DOMDocument();
@$doc->loadHTML(file_get_contents($url));
$res['title'] = $doc->getElementsByTagName('title')->item(0)->nodeValue;
foreach ($doc->getElementsByTagName('meta') as $m){
$tag = $m->getAttribute('name') ?: $m->getAttribute('property');
if(in_array($tag,['description','keywords']) || strpos($tag,'og:')===0) $res[str_replace('og:','',$tag)] = $m->getAttribute('content');
}
return $specificTags? array_intersect_key( $res, array_flip($specificTags) ) : $res;
}
$_ARRAY = getSiteOG("$_URL");
echo $_ARRAY['image'];
?>
и при использовании со следующим синтаксисом, например, на нашем сайте
tags.php?url=http://www.stackoverflow.com
, он печатает следующий результат
https://cdn.sstatic.net/Sites/stackoverflow/img/apple-touch-icon@2.png?v=73d79a89bded
Это приемлемо.
Сценарий выполняется для командного файла с использованием следующего метода
@echo off
PowerShell -Command "(new-object net.webclient).DownloadString('http://yoursite.com/tags.php?url=https://www.banggood.com/TKEXUN-M2-Flip-Phone-2800mAh-3_0-inch-Touch-Screen-Blutooth-FM-Dual-Sim-Card-Flip-Feature-Phone-p-1367504.html')"
PowerShell -Command "(new-object net.webclient).DownloadString('http://yoursite.com/tags.php?url=https://www.banggood.com/Xiaomi-Mi-9T-Pro-Global-Version-6_39-inch-48MP-Triple-Camera-NFC-4000mAh-6GB-64GB-Snapdragon-855-Octa-core-4G-Smartphone-p-1547570.html?ID=564486&cur_warehouse=HK')"
PowerShell -Command "(new-object net.webclient).DownloadString('http://yoursite.com/tags.php?url=https://www.banggood.com/OnePlus-7-6_41-Inch-FHD-AMOLED-Waterdrop-Display-60Hz-NFC-3700mAh-48MP-Rear-Camera-8GB-256GB-UFS-3_0-Snapdragon-855-Octa-Core-4G-Smartphone-p-1499559.html?ID=62208216150349&cur_warehouse=HK')"
, который в свою очередь выводит на экран результирующие ссылки или когда pipe'dдля файла в файл он также работает со списком URL-адресов файла в другом пакетном скрипте, но теперь это не имеет значения
Проблема, с которой я сталкиваюсь -
Когда я пытаюсь получить ссылки на ссылки og: image, как, например, на сайте gearbest, например,
https://www.gearbest.com/headsets/pp_009839056462.html
Я не получаю результатов !!!
Я запустил простые команды, такие как wget -qO- url
или curl -I url
для заголовков, и в результате он как-то связан с тем, как мой php был скомпилирован, или даже завитками на стороне SSL.Я прочитал здесь , что некоторым сайтам требуется более новый безопасный ssl и т. Д.
Чтобы отметить, я также пытался маскировать запрос wget, меняя пользователя Агент и другие значения, связанные с cookie, на лету, но все еще с без успеха.
Я на общем хостинге с доступом к оболочке в тюрьме, но со многими бинарными инструментами, sed / awk / wget / curl и т. д. и хост-сайт весьма полезен, помогая мне решить мои проблемы путем добавления бинарных файлов, которые мне могут понадобиться, но все же я не знаю, как действовать.
Любойпомощь очень ценится