"Se um trabalhador quiser fazer bem o seu trabalho, ele deve primeiro afiar suas ferramentas." - Confúcio, "Os Analectos de Confúcio. Lu Linggong"
Primeira página > Programação > Como recuperar o conteúdo da página usando cURL apesar dos erros de “Página movida”?

Como recuperar o conteúdo da página usando cURL apesar dos erros de “Página movida”?

Publicado em 2024-11-09
Navegar:515

How to Retrieve Page Content Using cURL Despite \

Recuperando o conteúdo da página usando cURL

Nesse contexto, você procura extrair o conteúdo de uma página de resultados de pesquisa do Google usando cURL. Apesar da tentativa de definir agentes de usuário e várias opções, a recuperação bem-sucedida do conteúdo da página escapou de você. Redirecionamentos ou erros de "página movida" continuam a atrapalhar seus esforços.

Acredita-se que o problema pode resultar da codificação de caracteres especiais na string de consulta. Para mitigar isso, são necessárias alterações em seu código PHP.

Esta é a abordagem:

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;
}

Uso:

$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'];

Com este código, agora você pode recuperar o conteúdo exato da página conforme exibido em seu navegador. Ao levar em conta os caracteres especiais na string de consulta, você pode superar os obstáculos enfrentados anteriormente.

Declaração de lançamento Este artigo foi reimpresso em: 1729596678 Se houver alguma violação, entre em contato com [email protected] para excluí-lo
Tutorial mais recente Mais>

Isenção de responsabilidade: Todos os recursos fornecidos são parcialmente provenientes da Internet. Se houver qualquer violação de seus direitos autorais ou outros direitos e interesses, explique os motivos detalhados e forneça prova de direitos autorais ou direitos e interesses e envie-a para o e-mail: [email protected]. Nós cuidaremos disso para você o mais rápido possível.

Copyright© 2022 湘ICP备2022001581号-3