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 :: Версия для печати :: Curl части очень большой страницы, как спарсить часть страницы?
Форумы портала PHP.SU » » Вопросы новичков » Curl части очень большой страницы, как спарсить часть страницы?

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

1. GigaSSS - 16 Декабря, 2016 - 22:29:44 - перейти к сообщению
Здравствуйте, уважаемые гуру.
Есть задача: нужно спарсить часть страницы, которая весит почти 10 мегабайт, из-за такого размера, парсинг занимает почти 1 минуту, но мне нужно спарсить только первые 1000 символов и соответственно сэкономить время. Как можно решить эту задачу?
Пробовал
curl_setopt($ch, CURLOPT_RANGE, "0-1000");
Не помогает, парсит всю страницу.
2. andrewkard - 16 Декабря, 2016 - 23:10:49 - перейти к сообщению
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);
3. GigaSSS - 17 Декабря, 2016 - 09:24:02 - перейти к сообщению
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 параметры
4. Мелкий - 17 Декабря, 2016 - 09:37:14 - перейти к сообщению
Посмотрите в сторону CURLOPT_PROGRESSFUNCTION
http://stackoverflow[dot]com/a/17642638
Вроде бы то что нужно.
5. andrewkard - 17 Декабря, 2016 - 10:46:50 - перейти к сообщению
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.  

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

Похоже. Улыбка
6. GigaSSS - 17 Декабря, 2016 - 12:04:29 - перейти к сообщению
Мелкий пишет:
Посмотрите в сторону CURLOPT_PROGRESSFUNCTION
http://stackoverflow[dot]com/a/17642638
Вроде бы то что нужно.


Спасибо, помогло, но решил с помощью CURLOPT_WRITEFUNCTION

 

Powered by ExBB FM 1.0 RC1