iplaton
@iplaton

Почему CURL не получает весь код страницы?

Теряется середина страницы. Firefox с отключенным js выдает код полностью. Поэтому предположу, что контент статический html и дело не в том что CURL не умеет обрабатывать js.
public static function getContent($url, $userAgent = null, $referer = null) {
        
        $ch = curl_init();
        curl_setopt($ch, CURLOPT_URL, $url);
        curl_setopt($ch, CURLOPT_HEADER, 0);
        if (isset($userAgent)) {
            curl_setopt($ch, CURLOPT_USERAGENT, $userAgent);
        }
        if (isset($referer)) {
            curl_setopt($ch, CURLOPT_REFERER, $referer);
        }
        curl_setopt($ch, CURLOPT_FOLLOWLOCATION, 1);
        curl_setopt($ch, CURLOPT_MAXREDIRS, 50);

        curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
        $fc='\!cookie-'.\Cat\Common\Text::urlToFileName($url, 'txt');
        curl_setopt($ch, CURLOPT_COOKIEJAR, App::dataDir() . $fc);
        curl_setopt($ch, CURLOPT_COOKIEFILE, App::dataDir() . $fc);

        $r = curl_exec($ch);

        if (false === $r) {
            static::$info = curl_error($ch);
        } else {
            static::$info = curl_getinfo($ch);
        }
        curl_close($ch);
        return $r;
    }

причем на разных страницах одного и того же сайта CURL ведет себя по разному. Одни качает полностью, другие - теряет данные. На комплексную защиту от парсинга не похоже..
Кто-нибудь сталкивался?
  • Вопрос задан
  • 273 просмотра
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы