Просканируйте веб-сайт, получите ссылки, просканируйте ссылки с помощью PHP и XPATH

Я хочу просканировать весь веб-сайт, я прочитал несколько тем, но не могу получить данные на 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 для обработки запроса...

Любые идеи, пожалуйста??:)

7
задан Bill the Lizard 12 April 2012 в 12:12
поделиться