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 :: Curl части очень большой страницы, как спарсить часть страницы?

 PHP.SU

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


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

> Описание: Curl части очень большой страницы, как спарсить часть страницы?
GigaSSS
Отправлено: 16 Декабря, 2016 - 22:29:44
Post Id


Новичок


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


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




Здравствуйте, уважаемые гуру.
Есть задача: нужно спарсить часть страницы, которая весит почти 10 мегабайт, из-за такого размера, парсинг занимает почти 1 минуту, но мне нужно спарсить только первые 1000 символов и соответственно сэкономить время. Как можно решить эту задачу?
Пробовал
curl_setopt($ch, CURLOPT_RANGE, "0-1000");
Не помогает, парсит всю страницу.
 
 Top
andrewkard
Отправлено: 16 Декабря, 2016 - 23:10:49
Post Id


Участник


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


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




cURL обязательно? Вроде пишут с командной строки можно. Можно еще так:
PHP:
скопировать код в буфер обмена
  1. //string file_get_contents ( string $filename [, bool $use_include_path = false [, resource $context [, int $offset = 0 [, int $maxlen ]]]] )
  2. echo file_get_contents('http://php.net/',0,null,0,1000);
 
 Top
GigaSSS
Отправлено: 17 Декабря, 2016 - 09:24:02
Post Id


Новичок


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


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




andrewkard пишет:
cURL обязательно? Вроде пишут с командной строки можно. Можно еще так:
PHP:
скопировать код в буфер обмена
  1. //string file_get_contents ( string $filename [, bool $use_include_path = false [, resource $context [, int $offset = 0 [, int $maxlen ]]]] )
  2. echo file_get_contents('http://php.net/',0,null,0,1000);


Думаю этот вариант не пройдет, так как нужно передать POST параметры
 
 Top
Мелкий Супермодератор
Отправлено: 17 Декабря, 2016 - 09:37:14
Post Id



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


Покинул форум
Сообщений всего: 11926
Дата рег-ции: Июль 2009  
Откуда: Россия, Санкт-Петербург


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




Посмотрите в сторону CURLOPT_PROGRESSFUNCTION
http://stackoverflow[dot]com/a/17642638
Вроде бы то что нужно.


-----
PostgreSQL DBA
 
 Top
andrewkard
Отправлено: 17 Декабря, 2016 - 10:46:50
Post Id


Участник


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


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




GigaSSS пишет:
Думаю этот вариант не пройдет, так как нужно передать POST параметры

Есть варианты:
PHP:
скопировать код в буфер обмена
  1.  
  2.         'http' => array(
  3.             'method' => 'POST',
  4.             'header' => 'Content-Type: application/x-www-form-urlencoded' . PHP_EOL,
  5.             'content' => QUERY,
  6.         ),
  7.     ));
  8.  
  9. $data = file_get_contents('http://www.php.net', false, $context);
  10. echo $data;
  11.  

Мелкий пишет:
Вроде бы то что нужно.

Похоже. Улыбка
 
 Top
GigaSSS
Отправлено: 17 Декабря, 2016 - 12:04:29
Post Id


Новичок


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


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




Мелкий пишет:
Посмотрите в сторону CURLOPT_PROGRESSFUNCTION
http://stackoverflow[dot]com/a/17642638
Вроде бы то что нужно.


Спасибо, помогло, но решил с помощью CURLOPT_WRITEFUNCTION
 
 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