@Teraxis

Почему парсер не видит innertext на двох однотипных страницах?

Запускаю парсер для двох однотипных страниц court.gov.ua/sud1820 и court.gov.ua/sud0828. Цель - извлечь контакты суда. Разметка и кодировка страниц одна и та же. При обработке sud1820 получаю, то что желаю

41200
смт Ямпіль
бул. Ювілейний, буд. 8/2


А при обработке страницы sud0828 парсер не видит innertext.

require_once __DIR__ . '/parser/simple_html_dom.php';
$data = file_get_contents('http://court.gov.ua/sud0828');
$data = mb_convert_encoding($data, 'utf-8', 'windows-1251');
$data = str_get_html_2($data);
if ($data->innertext != '') {
      $table = $data->find('table.menur1');
      if($table){
		 for($i=0;$i<count($table);$i++){
			CourtFullAddress = strip_tags($table[$i]->find('tr', 1)->children(1));
			list($CourtPostCode, $CourtCity, $street, $build, $section, $section2, $section3) = explode(",", $CourtFullAddress);
		        $CourtStreet = $street.', буд. '.$build.', '.$section.', '.$section2.', '.$section3;
			 print $CourtPostCode.'<br/>';
			 print $CourtCity.'<br/>';
			 print $CourtStreet.'<br/><br/>';
      }
}


Пробовал через curl_init, результат тот же.
В чем может быть проблема?
  • Вопрос задан
  • 155 просмотров
Решения вопроса 1
Settler1
@Settler1
Правильно написанный вопрос - половина ответа
Старый ответ:
Я не вижу блока с контактами по второй ссылке, не видит потому что его нет?


Новый ответ:
Тогда действительно странно. Мое предположение - вторая страница значительно больше первой, может вашему парсеру из str_get_html_2() памяти не хватает, может там содержится что-то что ломает структуру страницы.

У меня с обоими страницами прошло на ура:
$data = file_get_contents("http://ymp.su.court.gov.ua/sud1820");
preg_match('/<table cellpadding=0 cellspacing=0 class=menur1>.+?<\/table>/s', $data, $matches);
print_r($matches);
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы