Перейти к содержимому













Фотография
Нужна помощь

Парсер постоянно обновляет страницу



  • Авторизуйтесь для ответа в теме
Сообщений в теме: 4

#1 Alberts

Alberts
  • Premium
  • Сообщений: 226
  • Регистрация: 12.08.2016
  • Заработано: 157 руб.
Репутация: 116

Награды: 18

  
  
  
  
  
  
  
  

Отправлено 14 Май 2017 - 16:11

Всем привет, весь день убил чтобы забрать одну страницу, ничего не получается. Пишу обычный парсер на php:

include 'parser/simple_html_dom.php';

$html = file_get_contents('http://rostov.press/'); 
echo $html;

При запуске, постоянно, примерно 1 раз в секунду обновляется страница с белым экраном, это что такое и как это обойти? Проблема только с этим сайтом, пробовал другие все ок проходит.


Сообщение отредактировал Alberts: 14 Май 2017 - 16:16


#2 Alberts

Alberts
  • Premium
  • Сообщений: 226
  • Регистрация: 12.08.2016
  • Заработано: 157 руб.
Репутация: 116

Награды: 18

  
  
  
  
  
  
  
  

Отправлено 14 Май 2017 - 16:30

Причем стандартный пример curl работает также:

$ch = curl_init();
curl_setopt ($ch, CURLOPT_URL, "https://rostov.press/");
//curl_setopt ($ch, CURLOPT_POST, 1);
curl_setopt ($ch, CURLOPT_SSL_VERIFYPEER, FALSE);
curl_setopt ($ch, CURLOPT_RETURNTRANSFER, TRUE);
$result = curl_exec ($ch);
curl_close($ch);
 
echo $result;

Обновляется постояно страница и все((



#3 doca

doca
  • Platinum
  • Сообщений: 346
  • Регистрация: 16.08.2016
  • Заработано: 40 руб.
Репутация: 66

Награды: 20

  
  
  
  
  
  
  
  

Отправлено 14 Май 2017 - 17:03

У меня после парсинга сайта

 

Код
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, $url);
curl_setopt($ch, CURLOPT_PORT, 80);
curl_setopt($ch, CURLOPT_FAILONERROR, 1); 
curl_setopt($ch, CURLOPT_FOLLOWLOCATION, true);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt ($ch, CURLOPT_CONNECTTIMEOUT, 20);
curl_setopt($ch, CURLOPT_TIMEOUT, 20);
curl_setopt($ch, CURLOPT_NOBODY, 0);
curl_setopt ($ch, CURLOPT_HEADER, 0); 
curl_setopt($ch, CURLOPT_HTTPAUTH, CURLAUTH_BASIC);
$data = curl_exec($ch);
echo htmlentities( $data );
curl_close($ch);

 

Выводит текст

Текст
<html><head><script>function set_cookie(){var now = new Date();var time = now.getTime();time += 19360000 * 1000;now.setTime(time);document.cookie='beget=begetok'+'; expires='+now.toGMTString()+'; path=/';}set_cookie();location.reload();;</script></head><body></body></html>


Сообщение отредактировал doca: 14 Май 2017 - 17:03


#4 Alberts

Alberts
  • Premium
  • Сообщений: 226
  • Регистрация: 12.08.2016
  • Заработано: 157 руб.
Репутация: 116

Награды: 18

  
  
  
  
  
  
  
  

Отправлено 14 Май 2017 - 20:15

В общем поломал голову и решил поискать другой сайт. Нашел, попробовал по своему первому методу:

include 'parser/simple_html_dom.php';

$html = file_get_contents('http://rostov.ru/'); 
$html = iconv('windows-1251', 'utf-8', $html);

echo $html;

Пришлось добавить строку перекодировки в utf-8, но все работает, когда вывожу на экран переменную $html вижу весь сайт, далее мне нужно найти там ссылки и заголовки новостей, я пишу:

if(count($html->find('#content ul li a')))
	foreach($html->find('#content ul li a') as $data)   
		echo $data; 

И получаю в логи такую ошибку:

[Sun May 14 19:46:44.541257 2017] [:error] [pid 27127] [client 31.23.239.80:42688] PHP Fatal error:  Uncaught Error: Call to a member function find() on string in /home/c/ck61416/site.ru/public_html/vor.php:21\nStack trace:\n#0 {main}\n  thrown in /home/c/ck61416/site.ru/public_html/vor.php on line 21

 

Я уже писал подобные парсеры, для других сайтов, никогда небыло подобных проблем, сегодня не мой день. В общем не зависимо какие теги там стоят, ошибка всегда одинакова. Может кто помочь с решением?


Сообщение отредактировал Alberts: 14 Май 2017 - 20:19


#5 Alberts

Alberts
  • Premium
  • Сообщений: 226
  • Регистрация: 12.08.2016
  • Заработано: 157 руб.
Репутация: 116

Награды: 18

  
  
  
  
  
  
  
  

Отправлено 14 Май 2017 - 20:38

Я нуп, первой строчкой нужно было так написать и все работает:

$html = file_get_html('http://rostov.ru/');




Похожие темы Collapse

Количество пользователей, читающих эту тему: 0

0 пользователей, 0 гостей, 0 анонимных

×

Зарегистрируйся моментально!