Я пытаюсь собрать текст с веб-страницы с помощью PHP, так что, когда текст на этом веб-сайте обновляется, он также автоматически обновляется.
Возьмите сайт http://www.roblox.com/CW-Ultimate-Amethyst-Addiction-item?id=188004500, например - внутри класса robux-text
, там фигура, robux-text
R $ 20,003 - моя цель - получить текст от Roblox, на мой сайт.
Я попытался использовать этот код, но безрезультатно - мне предъявляются следующие ошибки:
Предупреждение: file_get_contents(): php_network_getaddresses: getaddrinfo не удалось: временный сбой при разрешении имени в /home/public_html/index.php в строке 9
Предупреждение: file_get_contents (http://www.roblox.com/CW-Ultimate-Amethyst-Addiction-item?id=188004500): не удалось открыть поток: php_network_getaddresses: getaddrinfo не удалось: временный сбой при разрешении имен в /home/public_html/index.php в строке 9
Предупреждение: DOMDocument :: loadHTML(): пустая строка, предоставленная в качестве входа в /home/public_html/index.php в строке 11
<?php
$html = file_get_contents("http://www.roblox.com/CW-Ultimate-Amethyst-Addiction-item?id=188004500");
$DOM = new DOMDocument();
$DOM->loadHTML($html);
$finder = new DomXPath($DOM);
$classname = 'robux-text';
$nodes = $finder->query("//*[contains(@class, '$classname')]");
foreach ($nodes as $node) {
echo $node->nodeValue;
}
?>
Похоже, что allow_url_fopen
отключил вашу систему (php.ini
), поэтому вы получаете ошибку.
Попробуйте с помощью curl:
<?php
libxml_use_internal_errors(true);
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, "http://www.roblox.com/CW-Ultimate-Amethyst-Addiction-item?id=188004500");
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
$html = curl_exec($ch);
curl_close($ch);
$DOM = new DOMDocument();
$DOM->loadHTML($html);
$finder = new DomXPath($DOM);
$classname = 'robux-text';
$nodes = $finder->query("//*[contains(@class, '$classname')]");
foreach ($nodes as $node) {
echo $node->nodeValue;
}
?>
libxml_use_internal_errors(true);
Вы можете легко получить html-содержимое URL-адреса с помощью завитка. Вам просто нужно установить для параметра returntransfer значение true.