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]   

> Без описания
Creative
Отправлено: 05 Июня, 2016 - 18:17:18
Post Id



Новичок


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


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




Здравствуйте уважаемые форумчане. Стоит задача вывести таблицу с сайта A на сайт B, на сайте А надо пройти авторизацию.
В кодинге слабоват, но пройти авторизацию и вывести всю страницу у меня получилось. А вывести отдельные столбцы (5 из 10 столбов) вывести не могу, не могу придумать ( Помогите пожалуйста.
Вот как у меня сейчас:
PHP:
скопировать код в буфер обмена
  1. $url = 'http://siteA.ru/login';
  2. $ch = curl_init();
  3. curl_setopt($ch, CURLOPT_URL, $url); // отправляем на
  4. curl_setopt ($ch, CURLOPT_USERAGENT, "Mozilla/5.0 (Windows NT 6.1; WOW64; rv:23.0) Gecko/20100101 Firefox/23.0");
  5. curl_setopt($ch, CURLOPT_HEADER, 0); // пустые заголовки
  6. curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1); // возвратить то что вернул сервер
  7. curl_setopt($ch, CURLOPT_FOLLOWLOCATION, 1); // следовать за редиректами
  8. curl_setopt($ch, CURLOPT_CONNECTTIMEOUT, 30);// таймаут4
  9. curl_setopt($ch, CURLOPT_REFERER, "http://siteA.ru/login");
  10. curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false);// просто отключаем проверку сертификата
  11. curl_setopt($ch, CURLOPT_COOKIEJAR, dirname(__FILE__).'/cookie.txt'); // сохранять куки в файл
  12. curl_setopt($ch, CURLOPT_COOKIEFILE, '/cookie.txt'); // считать куки из файла
  13. curl_setopt($ch, CURLOPT_POST, 1); // использовать данные в post
  14. $login = array(
  15.   'email' => 'login@login',
  16.   'password' => 'password'
  17. );
  18. curl_setopt(($ch), CURLOPT_POSTFIELDS, $login);
  19. $result1 = curl_exec($ch);
  20. $url2 ='http://siteA.ru/statistic';
  21. curl_setopt($ch, CURLOPT_URL, $url2);
  22. curl_setopt($ch, CURLOPT_REFERER, "http://siteA.ru/login");
  23. curl_setopt($ch, CURLOPT_COOKIEFILE, '/cookie.txt');
  24. $result2 = curl_exec($ch);
  25.  
  26. if (curl_errno($ch))
  27. {
  28.    print curl_error($ch);
  29.    exit;
  30. }
  31. else
  32. {
  33.   echo '<br>';
  34.   echo 'Успешная авторизация';
  35.   echo '<br>';
  36.   echo $result2; // вот это выводит всю страницу у меня на сайте, а мне нужна только часть таблицы с этой страницы :(
  37. }
  38.  


Как я понимаю, $result2 надо распарсить выцепить из неё в другую переменную инфу и выводить уже обработанную. Как это это сделать я не знаю
Вообще я подозреваю, выше ужс, а не скрипт ну..что было в интернете, то и применил
 
 Top
andrewkard
Отправлено: 06 Июня, 2016 - 10:04:41
Post Id


Участник


Покинул форум
Сообщений всего: 1372
Дата рег-ции: Нояб. 2014  


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




Creative
Подключите библиотеку PHP Simple HTML DOM Parser и с ее помощью вытащите то что Вам нужно. Либо самостоятельно используя строковые функции php.
 
 Top
Creative
Отправлено: 06 Июня, 2016 - 12:14:47
Post Id



Новичок


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


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




andrewkard пишет:
Creative
Подключите библиотеку PHP Simple HTML DOM Parser и с ее помощью вытащите то что Вам нужно. Либо самостоятельно используя строковые функции php.


Подскажите пожалуйста в коде где подключать simple DOM, после curl_close($ch); ?

подключаю simple Dom, после закрытия, дальше как писать?..уже голову за выходные сломал( а в интернете не нашел подходящего варианта(
 
 Top
Viper
Отправлено: 06 Июня, 2016 - 13:05:29
Post Id



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


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


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




Creative пишет:
Подскажите пожалуйста в коде где подключать simple DOM, после curl_close($ch); ?
не важно, но только не в цикле.

Конкретно тут всё описано http://simplehtmldom[dot]sourceforge[dot]net/manual[dot]htm
Разделы Quick Start, How to find HTML elements?


-----
Список фильмов с описанием, блекджеком и... для Joomla? -> https://киноархив[dot]com
Демо нового движка для сайта php.su -> php[dot]su, проект на гитхабе
 
 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