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 » PHP » Напишите за меня, пожалуйста » Помогите допилить практически рабочий код

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

1. Virus1850 - 19 Июля, 2016 - 23:23:51 - перейти к сообщению
Ребят, долго мучился на следующим, кодом, что делать дальше ума не приложу.. помогите допилить.

В общем, есть авторизация, которая вроде работает правильно, при запуске выводит в браузер главную страницу уже авторизованного пользователя - УРА!
Далее есть парсер (на заранее сохраненной странице, работает безупречно), он должен считывать несколько блоков со страницы, которая доступна лишь после авторизации, но поскольку эта страница имеет адрес отличный от главной страницы сайта, данные парсить не получается(( Подпилите код, что бы после авторизации можно было попасть на нужную страницу и далее уже получить данные...

PHP:
скопировать код в буфер обмена
  1.  /* Блок авторизации */
  2. ПЕРЕПИСАН, есть в низу!
  3.  
  4. /* Блок авторизации */
  5.  
  6. /* Парсер */
  7. include_once('simple_html_dom.php');
  8. $html = file_get_html ('http://****/****/****/play/25438/');
  9. $level = $html->find ('.content span ', 0)->innertext;
  10. $task = $html->find ('.content h3 ', 0)->innertext; // Отключен
  11. $text = $html->find ('.content p ', 0)->innertext; // Отключен
  12. echo "Информация: $level";
  13. /* Парсер */
2. andrewkard - 20 Июля, 2016 - 13:18:05 - перейти к сообщению
Virus1850 пишет:
$html = file_get_html ('http://****/****/****/play/25438/');

этот запрос не передает куки, делайте с помощью curl
3. Virus1850 - 20 Июля, 2016 - 13:53:37 - перейти к сообщению
andrewkard пишет:
Virus1850 пишет:
$html = file_get_html ('http://****/****/****/play/25438/');

этот запрос не передает куки, делайте с помощью curl


К чему-то подобному я уже пришел, пол-ночи читая форум, т.е. я правильно понимаю, мне в парсер нужно внести код "считывания" куков из файла cookie.txt и их оправки?

P.S. Возможно вы подскажете, мне нужно получать информацию с сайта практически в режиме онлайн, т.е. по сути таймер запроса к серверу должен быть установлен на 1-3 сек. Но, у меня написал js код, который просто обновляет страницу по таймеру... если страница обновляется полностью то по новой запускается код авторизации, далее парсер... это, как по мне, большая нагрузка на сервер. Можно как то установить таймер именно на выполнение кода парсера? ведь если он будет передавать куки то смысл постоянно авторизовываться на целевом сайте...!?

Для обновления использую такой код:
CODE (javascript):
скопировать код в буфер обмена
  1. <script type="text/javascript">
  2. function timer(){
  3. var obj=document.getElementById('timer_inp');
  4. obj.innerHTML--;
  5.     if (obj.innerHTML==0){
  6.   location.reload();
  7.     } else {
  8.         setTimeout(timer,1000);
  9.     }
  10. }
  11. setTimeout(timer,1000);
  12. </script>
  13. <div>Осталось: <span id="timer_inp">10</span> сек.</div>
4. andrewkard - 20 Июля, 2016 - 14:57:02 - перейти к сообщению
Virus1850 пишет:
по сути таймер запроса к серверу должен быть установлен на 1-3 сек.

Вас не забанят? Обычно периодические задачи запускают с помощью планировщика.
5. Virus1850 - 20 Июля, 2016 - 16:01:40 - перейти к сообщению
andrewkard пишет:
Virus1850 пишет:
по сути таймер запроса к серверу должен быть установлен на 1-3 сек.

Вас не забанят? Обычно периодические задачи запускают с помощью планировщика.

Думаю нет, на этом сайте переодически не только я используют такую схему, суть в том что сообщения с инфой прилетают в телегу (в чат), и я уже видел примеры работы такого бота, автор конечно не поделились исходником, но сказал что работает обычный парсер.. но судя по тому что инфа в чат прилетала как только страница изменялась, я думаю у него запрос к этой странице выполнялся каждую секунду. Или вы знаете другие схемы выполнения моей задачи, что бы не нагружать сервер?
6. Virus1850 - 20 Июля, 2016 - 20:06:27 - перейти к сообщению
С помощью этого, получил в браузер необходимую страницу! Скажите, как извлечь из нее инфу ли вернуть в переменную в формате html и запихнуть ее в парсер который ниже. $result почему то выводи просто 1 - если убрать, страница остается, единица естественно исчезает.
PHP:
скопировать код в буфер обмена
  1. $log="****";
  2. $pass="****";
  3. $curl = curl_init(); // инициализируем cURL
  4. curl_setopt($curl, CURLOPT_URL, 'http://****/****/****/play/25438/');
  5. curl_setopt($curl, CURLOPT_COOKIEJAR, 'cook.txt');
  6. curl_setopt($curl, CURLOPT_COOKIEFILE, 'cook.txt');
  7. curl_setopt($curl, CURLOPT_USERAGENT, "Opera/10.00 (Windows NT 5.1; U; ru) Presto/2.2.0");
  8. curl_setopt($curl, CURLOPT_FAILONERROR, 1);
  9. curl_setopt($curl, CURLOPT_REFERER, 'http://*****/Default.aspx');
  10. curl_setopt($curl, CURLOPT_TIMEOUT, 3);
  11. curl_setopt($curl, CURLOPT_POST, 1);
  12. curl_setopt($curl, CURLOPT_POSTFIELDS, "socialAssign=0&Login=$log&Password=$pass&EnButton1=%D0%92%D1%85%D0%BE%D0%B4&ddlNetwork=1");
  13. curl_setopt($curl, CURLOPT_HEADER, 0);
  14. curl_setopt ($curl, CURLOPT_SSL_VERIFYPEER, 0);// не проверять SSL сертификат
  15. curl_setopt ($curl, CURLOPT_SSL_VERIFYHOST, 0);// не проверять Host SSL сертификата
  16. curl_setopt($curl, CURLOPT_FOLLOWLOCATION, 1);// разрешаем редиректы
  17. $result = curl_exec($curl); // выполняем запрос и записываем в переменную
  18. curl_close($curl);
  19.  
  20. echo $result;
  21.  
  22. /* Парсер */
  23. include_once('simple_html_dom.php');
  24. $html = file_get_html ('http://****/****/****/play/25438/');
  25. $level = $html->find ('.content span ', 0)->innertext;
  26. $task = $html->find ('.content h3 ', 0)->innertext; // Отключен
  27. $text = $html->find ('.content p ', 0)->innertext; // Отключен
  28. echo "Информация: $level";
  29. /* Парсер */
7. Ermite - 24 Июля, 2016 - 12:56:06 - перейти к сообщению
Попробуй вставить

 

Powered by ExBB FM 1.0 RC1