Я хочу просканировать весь веб-сайт, я прочитал несколько тем, но не могу получить данные на 2-м уровне.
То есть я могу вернуть ссылки со стартовой страницы, но тогда я не могу найти способ разобрать ссылки и получить содержимое каждой ссылки...
Я использую код:
<?php
// SELECT STARTING PAGE
$url = 'http://mydomain.com/';
$html= file_get_contents($url);
// GET ALL THE LINKS OF EACH PAGE
// create a dom object
$dom = new DOMDocument();
@$dom->loadHTML($html);
// run xpath for the dom
$xPath = new DOMXPath($dom);
// get links from starting page
$elements = $xPath->query("//a/@href");
foreach ($elements as $e) {
echo $e->nodeValue. "<br />";
}
// Parse each page using the extracted links?
?>
Может ли кто-нибудь помочь мне в последней части с примером?
Я буду очень признателен!
Ну, спасибо за ваши ответы! Я пробовал кое-что, но пока не получил никаких результатов -Я новичок в программировании..
Ниже вы можете найти 2 мои попытки -первая попытка парсить ссылки и вторая попытка заменить файл _получить содержимое с помощью Curl:
1)
<?php
// GET STARTING PAGE
$url = 'http://www.capoeira.com.gr/';
$html= file_get_contents($url);
//GET ALL THE LINKS FROM STARTING PAGE
// create a dom object
$dom = new DOMDocument();
@$dom->loadHTML($html);
// run xpath for the dom
$xPath = new DOMXPath($dom);
// get specific elements from the sites
$elements = $xPath->query("//a/@href");
//PARSE EACH LINK
foreach($elements as $e) {
$URLS= file_get_contents($e);
$dom = new DOMDocument();
@$dom->loadHTML($html);
$xPath = new DOMXPath($dom);
$output = $xPath->query("//div[@class='content-entry clearfix']");
echo $output ->nodeValue;
}
?>
Для приведенного выше кода я получаю Предупреждение :файл _получить _содержимое ()ожидает, что параметр 1 будет строкой,объект, указанный в../example.php в строке 26
2)
<?php
$curl = curl_init();
curl_setopt($curl, CURLOPT_POST, 1);
curl_setopt($curl, CURLOPT_URL, "http://capoeira.com.gr");
curl_setopt($curl, CURLOPT_RETURNTRANSFER, 1);
$content= curl_exec($curl);
curl_close($curl);
$dom = new DOMDocument();
@$dom->loadHTML($content);
$xPath = new DOMXPath($dom);
$elements = $xPath->query("//a/@href");
foreach ($elements as $e) {
echo $e->nodeValue. "<br />";
}
?>
Я не получаю результатов. Я попытался повторить $content и получил:
У вас нет прав доступа к / на этом сервере.
Кроме того, возникла ошибка 413 Request Entity Too Large при попытке использовать ErrorDocument для обработки запроса...
Любые идеи, пожалуйста??:)