«Если рабочий хочет хорошо выполнять свою работу, он должен сначала заточить свои инструменты» — Конфуций, «Аналитики Конфуция. Лу Лингун»
титульная страница > программирование > Как получить содержимое страницы с помощью cURL, несмотря на ошибки «Страница перемещена»?

Как получить содержимое страницы с помощью cURL, несмотря на ошибки «Страница перемещена»?

Опубликовано 9 ноября 2024 г.
Просматривать:147

How to Retrieve Page Content Using cURL Despite \

Получение контента страницы с помощью cURL

В этом контексте вы пытаетесь очистить содержимое страницы результатов поиска Google с помощью cURL. Несмотря на попытки установить пользовательские агенты и различные параметры, успешное получение содержимого страницы ускользнуло от вас. Ошибки перенаправления или перемещения страницы продолжают мешать вашим усилиям.

Считается, что проблема может быть связана с кодировкой специальных символов в строке запроса. Чтобы избежать этого, необходимо внести изменения в ваш PHP-код.

Вот подход:

function get_web_page($url)
{
    $user_agent = 'Mozilla/5.0 (Windows NT 6.1; rv:8.0) Gecko/20100101 Firefox/8.0';

    $options = array(
        CURLOPT_CUSTOMREQUEST => "GET",
        CURLOPT_POST           => false,
        CURLOPT_USERAGENT      => $user_agent,
        CURLOPT_COOKIEFILE     => "cookie.txt",
        CURLOPT_COOKIEJAR      => "cookie.txt",
        CURLOPT_RETURNTRANSFER => true,
        CURLOPT_HEADER         => false,
        CURLOPT_FOLLOWLOCATION => true,
        CURLOPT_ENCODING       => "",
        CURLOPT_AUTOREFERER    => true,
        CURLOPT_CONNECTTIMEOUT => 120,
        CURLOPT_TIMEOUT        => 120,
        CURLOPT_MAXREDIRS      => 10
    );

    $ch = curl_init($url);
    curl_setopt_array($ch, $options);
    $content = curl_exec($ch);
    $err = curl_errno($ch);
    $errmsg = curl_error($ch);
    $header = curl_getinfo($ch);
    curl_close($ch);

    $header['errno']   = $err;
    $header['errmsg']  = $errmsg;
    $header['content'] = $content;
    return $header;
}

Использование:

$result = get_web_page($url);

if ($result['errno'] != 0) {
    // Handle errors: bad URL, timeout, redirect loop
}

if ($result['http_code'] != 200) {
    // Handle errors: no page, no permissions, no service
}

$page = $result['content'];

С помощью этого кода вы теперь можете получить точное содержимое страницы, отображаемое в вашем браузере. Учитывая специальные символы в строке запроса, вы сможете преодолеть препятствия, с которыми сталкивались ранее.

Заявление о выпуске Эта статья перепечатана по адресу: 1729596678. В случае каких-либо нарушений, пожалуйста, свяжитесь с [email protected], чтобы удалить ее.
Последний учебник Более>

Изучайте китайский

Отказ от ответственности: Все предоставленные ресурсы частично взяты из Интернета. В случае нарушения ваших авторских прав или других прав и интересов, пожалуйста, объясните подробные причины и предоставьте доказательства авторских прав или прав и интересов, а затем отправьте их по электронной почте: [email protected]. Мы сделаем это за вас как можно скорее.

Copyright© 2022 湘ICP备2022001581号-3