Warning: Cannot use a scalar value as an array in /home/admin/public_html/forum/include/fm.class.php on line 757

Warning: Invalid argument supplied for foreach() in /home/admin/public_html/forum/include/fm.class.php on line 770
Форумы портала PHP.SU :: Версия для печати :: Помогите светлы головы
Форумы портала PHP.SU » » Вопросы новичков » Помогите светлы головы

Страниц (1): [1]
 

1. Станислав - 13 Ноября, 2011 - 10:59:07 - перейти к сообщению
Недавно начал изучать парсинг, и вот моя первая работа Улыбка
CODE (htmlphp):
скопировать код в буфер обмена
  1.  
  2. <?php
  3.  
  4.  
  5. $URL= "http://www.tophotels.ru/" ;
  6.   $content=file_get_contents($URL);
  7.        $TAG_IN = "<h3>ОТЕЛИ ПО СТРАНАМ:</h3>";
  8.       $TAG_OUT = '<div class="pr_th_block">';
  9.     $position =strpos("$content",$TAG_IN);
  10.    $content = substr($content,$position);
  11.   $position =strpos("$content",$TAG_OUT);
  12.  $content = substr($content,0,$position);
  13. $content = str_replace('<a href="/main/hotels/','<a href="http://www.tophotels.ru/main/hotels/', $content);
  14. preg_match_all("/http\:\/\/([^\/\s]+[a-zа-я]+)\/?(\S+[\wа-яёЁ\/\-])?/i",$content,$ssilki);
  15. $structur = 'Z:\home\vor\www\page';
  16.   mkdir($structur,0700);
  17. $count= count($ssilki[0])-1;
  18.  
  19.  for($i=0;$i<=1;$i++){
  20.     $structure = 'Z:\home\vor\www\page\page_';
  21.        mkdir($structure.$i,0700);
  22.           $fp=fopen("page/page_".$i.".html",'w');
  23.             $Zabrat_content = file_get_contents($ssilki[0][$i]);
  24.             $TAG_vvod = "Сравнить";
  25.             $TAG_vivod = '<a href="/main/about2/">О проекте</a>';
  26.          $position =strpos("$Zabrat_content",$TAG_vvod);
  27.        $Zabrat_content = substr($Zabrat_content,$position);
  28.      $position =strpos("$Zabrat_content",$TAG_vivod);
  29.    $Zabrat_content = substr($Zabrat_content,0,$position);
  30.  
  31.  
  32.  
  33.  $Zabrat_content= str_replace('<a href="/main/hotel/','<a href="http://www.tophotels.ru/main/hotel/', $Zabrat_content);
  34.  fwrite($fp,$Zabrat_content);
  35.  preg_match_all("/http\:\/\/([^\/\s]+[a-zа-я]+)\/?(\S+[\wа-яёЁ])/i",$Zabrat_content,$podssilki);
  36.  
  37.  $count1= count($podssilki[0])-1;
  38.  print_r($podssilki[0]);
  39.  
  40.  $Vetka = "page/page_$i/page_";
  41.     for($r=0;$r<=$count1;$r++){
  42.         $fd=fopen($Vetka.$r.".html",'w');
  43.          // ВОТ ТУТ ОН ДОЛЖЕН ПЕРЕХВАТЫВАТЬ ССЫЛКИ ПОЛУЧЕННЫЕ ПО СТРАНАМ
  44.           $Zabrat_content2 = file_get_contents($podssilki[0][$r]);
  45.             $TAG_vvod1 = "Описание отеля";
  46.             $TAG_vivod1 = "<span>Я еду в этот отель!</span>";
  47.            $position1 =strpos("$Zabrat_content2",$TAG_vvod1);
  48.          $Zabrat_content2 = substr($Zabrat_content2,$position1);
  49.        $position1 =strpos("$Zabrat_content2",$TAG_vivod1);
  50.       $Zabrat_content2 = substr($Zabrat_content2,0,$position1);
  51.      fwrite($fd,$Zabrat_content2);
  52.     fclose($fd);
  53.    }
  54.  
  55.       fclose($fp);
  56.  


Так-вот подскажите пожалуйста в чем проблема , почему страницы по странам он распарсивает А вложенные, в которых отели идут, создает только пустые папки и не получает контент. И если кто знает как парсить страницы с переходом по страницам (то есть предыдущая следующая) дайте пожалуйста ссылку где можно про это почитать.

 

Powered by ExBB FM 1.0 RC1