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

Warning: Invalid argument supplied for foreach() in /home/admin/public_html/forum/topic.php on line 737
Форумы портала PHP.SU :: появился облом с парсингом данных

 PHP.SU

Программирование на PHP, MySQL и другие веб-технологии
PHP.SU Портал     На главную страницу форума Главная     Помощь Помощь     Поиск Поиск     Поиск Яндекс Поиск Яндекс     Вакансии  Пользователи Пользователи


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

> Без описания
daglas1
Отправлено: 26 Октября, 2011 - 15:41:30
Post Id


Посетитель


Покинул форум
Сообщений всего: 329
Дата рег-ции: Июль 2011  


Помог: 1 раз(а)




Всем привет. Есть код который был написан пару месяцев назад. И балгополучно работал. Этот код мог парсить сайт Н, и выдвать содержимое несокльких таблиц этой странички прямо у меня на сайте. Этот скрипт вызывался не часто. Но он уже на работает.
Думаю что это мог быть ай пи бан или нечто в этом роде.
а код, вот такой. название сайта и ключевые теги для парсинга я убрал
CODE (htmlphp):
скопировать код в буфер обмена
  1.  
  2. <?php
  3.    include("simple_html_dom.php");
  4.        
  5.         function get_xml_page($url) {
  6.  
  7.                 $ch = curl_init($url);
  8.  
  9.                 curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
  10.  
  11.                 $page = curl_exec($ch);
  12.                
  13.                 curl_close($ch);
  14.         return $page;
  15.  
  16.  
  17. }
  18. function getDiv($id,$domen,$table_name){
  19. $name = Array();
  20. $price = Array();
  21. $img_value = Array();
  22. $percent = Array();
  23. $time = Array();
  24.  
  25. if($domen=="ru")
  26. $str = "http://www..ru";
  27. else
  28. $str = "http://www..eu";
  29.  
  30. $page = get_xml_page(trim($str));
  31. $html = str_get_html($page);
  32.  
  33. $div_index = $html->getElementById($id);
  34.  
  35. $img = $div_index->find('img');
  36. for($i=0;$i<count($img);$i++){
  37. $img_gif = substr($img[$i]->src,5);
  38. $img_value[$i] = $img_gif;
  39. $td = $div_index->find('td');
  40. }
  41. $j=1;
  42. for($i=0;$i<count($td);$i++){
  43. if($j>5) $j=1;
  44. if($j==1) $name[]=iconv('windows-1251','utf-8',$td[$i]);
  45. if($j==2) $price[]=$td[$i];
  46. if($j==3) $img_value=$td[$i];
  47. if($j==4) $percent[]=$td[$i];
  48. if($j==5) $time[]=$td[$i];
  49. $j++;
  50. }
  51. $j=1;
  52. echo "<b>".iconv('windows-1251','utf-8',$table_name)."</b>";
  53. echo "<table border=1><tbody>";
  54. for($i=0;$i<count($td);$i++){
  55. if($name[$i]!=""){
  56.  if(substr(strip_tags($name[$i]), strlen(strip_tags($name[$i]))-1)=="*")
  57.   echo "<tr valign='center' bgcolor='#CCCCFF'><td width='50'>".trim(substr(strip_tags($name[$i]), 0, strlen(strip_tags($name[$i]))-1))."</td>";
  58.  else
  59.   echo "<tr valign='center' bgcolor='#CCCCFF'><td width='50'>".trim(strip_tags($name[$i]))."</td>";
  60.  }  
  61.  if($price[$i]!="") echo "<td width='30' align='center'>".strip_tags($price[$i])."</td>";
  62.  if($percent[$i]!="") echo "<td width='30' align='center'>".strip_tags($percent[$i])."</td>";
  63.  if($time[$i]!="") echo "<td width='30' align='center'>".strip_tags($time[$i])."</td></tr>";
  64.  $j++;
  65. }
  66. echo "</tbody></table>";
  67.  
  68. //echo $div_index;
  69. }
  70. getDiv("cell2", "ru", "");
  71. getDiv("cell5", "ru", "");
  72. //getDiv("container", "eu", "");
  73.  
  74. ?>
  75.  
 
 Top
Stierus Супермодератор
Отправлено: 26 Октября, 2011 - 16:47:25
Post Id



Рекордсмен по количеству сообщений за 7 дней


Покинул форум
Сообщений всего: 2132
Дата рег-ции: Дек. 2008  
Откуда: Москваль


Помог: 52 раз(а)




и в чем вопрос? Мог ли это быть бан? - мог ... так же они могли поменять структуру отдаваемого документа и ваши парсеры перестали работать ... или переименовать страничку Улыбка
 
My status
 Top
EuGen Администратор
Отправлено: 26 Октября, 2011 - 16:49:08
Post Id


Профессионал


Покинул форум
Сообщений всего: 9095
Дата рег-ции: Июнь 2007  
Откуда: Berlin


Помог: 707 раз(а)






-----
Есть в мире две бесконечные вещи - это Вселенная и человеческая глупость. Но насчет первой .. я не уверен.
 
 Top
daglas1
Отправлено: 26 Октября, 2011 - 19:16:53
Post Id


Посетитель


Покинул форум
Сообщений всего: 329
Дата рег-ции: Июль 2011  


Помог: 1 раз(а)




Stierus пишет:
и в чем вопрос? Мог ли это быть бан? - мог ... так же они могли поменять структуру отдаваемого документа и ваши парсеры перестали работать ... или переименовать страничку Улыбка

структура неменяется годами.
Вот такую ошибку получаю failed to open stream: Redirection limit reached, aborting in
 
 Top
Champion Супермодератор
Отправлено: 26 Октября, 2011 - 19:20:53
Post Id



Активный участник


Покинул форум
Сообщений всего: 4350
Дата рег-ции: Авг. 2008  
Откуда: Москва


Помог: 57 раз(а)




Значит происходит бесконечный редирект. Возможно, что сайт редирект на какую-то страницу, если у вас нет кук. Приходя на эту страницу, у вас снова нет кук и так далее.
Включите куки: CURLOPT_COOKIEFILE или как там.
Пробуйте отключать в браузере куки, смотреть как себя поведет сайт
А чтобы определить точно
EuGen пишет:
http://phpfaq.ru/debug
 
 Top
Страниц (1): [1]
Сейчас эту тему просматривают: 0 (гостей: 0, зарегистрированных: 0)
« Работа с сетью »


Все гости форума могут просматривать этот раздел.
Только зарегистрированные пользователи могут создавать новые темы в этом разделе.
Только зарегистрированные пользователи могут отвечать на сообщения в этом разделе.
 



Powered by PHP  Powered By MySQL  Powered by Nginx  Valid CSS  RSS

 
Powered by ExBB FM 1.0 RC1. InvisionExBB