Curl web pague protect

  • Autor Autor xaiborweb
  • Data de início Data de início
Tradução em andamento: em alguns minutos este tópico estará em português. Por enquanto, o conteúdo está no original em espanhol. Ver original
xaiborweb

xaiborweb

Dseda
Programador
No recomendado
Usuário com poucas negociações! Use sempre o saldo do ForoBeta!
hola estoy intentando hacerle curl a esta pagina
HTML:
https://www.pelispedia.tv/movies/all/?page=1
así:
PHP:
function curl($url,$referer,$metodopost,$cookies){
    $ch = curl_init($url);
    $headers = array(
        'accept-language: en-US;q=0.6,en;q=0.4',
        'user-agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/70.0.3538.110 Safari/537.36'
    );
    curl_setopt($ch, CURLOPT_HTTPHEADER, $headers);
    curl_setopt($ch, CURLOPT_FOLLOWLOCATION, TRUE);
    curl_setopt($ch, CURLOPT_RETURNTRANSFER, TRUE);
    curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, FALSE);
    if(!empty($referer)){
        curl_setopt($ch, CURLOPT_REFERER, $referer);
    }else{
        curl_setopt($ch, CURLOPT_REFERER, $url);
    }
    if(!empty($metodopost)){ 
        curl_setopt($ch, CURLOPT_POST, TRUE); 
        curl_setopt($ch, CURLOPT_POSTFIELDS, $metodopost); 
    }
    if(!empty($cookies)){
        curl_setopt($ch, CURLOPT_COOKIEJAR, $cookies);
        curl_setopt($ch, CURLOPT_COOKIEFILE, $cookies);
    }
    $source = curl_exec($ch);
    curl_close($ch); 

    if(!empty($source)){ 
        return $source;
    }
}
$url = 'https://www.pelispedia.tv/movies/all/?page=1';
echo $html = curl($url,'','','');
pero siempre me aparece este mensaje
PHP:
You are being redirected...
y no entiendo como pasar esa proteccion.

alguien tiene alguna idea al respecto ? 😉
 
Foi útil? Participe da conversa

Com sua conta grátis você pode responder, mandar mensagem privada ao autor e comprar com Saldo retido: o pagamento é liberado quando você recebe o combinado.

Leva 30 segundos · você volta a este tópico ao terminar
[MENTION=21382]Andres128[/MENTION]
[MENTION=42233]zcriptz[/MENTION]

hola amigos que pena mencionarlos en este tema pero como se que son los amos de estos temas me preguntaba si tienen alguna idea del tema de este hilo gracias 😉
 
hasta donde yo se, no hay nada que hacer en esos casos...
 
hahaha si xd y si compartes el método curl que utilizas ?

Bueno veo que tienes el sticker de Programador, entonces sabes que ésto es algo que toma horas aprender, ya sabes como es, si lo necesitas con urgencia te puedo hacer el trabajo a partir del lunes.

Saludos,
 
Por lo general, ese mensaje aparece cuando el curl va a una redireccion.
Deberías hacer el curl a la URL final.

Saludos,
 
Bueno hace rato no entraba a forobeta, igual esa gente tiene un sistema para bloquear bots si les haces muchas peticiones te bloquean, bueno me paso una vez xD

jajaj con mi función de curl muy básica y no muy buena

PHP:
function curl($url, $post_data="", $headers="", $cookie_file=""){
    $curl = curl_init($url);

    curl_setopt($curl, CURLOPT_RETURNTRANSFER, true);
    curl_setopt($curl, CURLOPT_FOLLOWLOCATION, true);
    curl_setopt($curl, CURLOPT_SSL_VERIFYHOST, false);
    curl_setopt($curl, CURLOPT_SSL_VERIFYPEER, false);
    curl_setopt($curl, CURLOPT_TIMEOUT, 10);

    if(!empty($headers)){curl_setopt($curl, CURLOPT_HTTPHEADER, $headers);}

    if(!empty($post_data)){
        curl_setopt($curl, CURLOPT_POST, true);
        curl_setopt($curl, CURLOPT_POSTFIELDS, $post_data);
    }

    if(!empty($cookie_file)){
        curl_setopt($curl, CURLOPT_COOKIEFILE, $cookie_file);
        curl_setopt($curl, CURLOPT_COOKIEJAR, $cookie_file);
    }
    curl_setopt($curl,CURLOPT_ENCODING, ''); /* aqui :) */
    $response = curl_exec($curl);

    if(curl_error($curl)){
        $httpcode = curl_getinfo($curl, CURLINFO_HTTP_CODE);
        $error = "Error = " . curl_error($curl) . " - " . 'HTTP code: ' . $httpcode;
        curl_close($curl);
        return array(false, $error);
    }

    curl_close($curl);

    return (empty($response) ? array(false, "No hay nada de respuesta.") : array(true, $response));
}
function Contains($str,$busqueda){return (strpos($str,$busqueda) !== false ? true : false);}

$url = "https://www.pelispedia.tv/movies/all/?page=1";
$headers = array();
$headers[]='User-Agent: Mozilla/5.0 (X11; Linux i686) AppleWebKit/537.31 (KHTML, like Gecko) Chrome/26.0.1410.43 Safari/537.31';

$response = curl($url,"",$headers);
if($response[0] === true){
    $dom = new DOMDocument;
    $dom->loadHTML($response[1]);
    $path = new DOMXPath($dom);
    $links = $path->query('//section[@class="noPadding moviePosters"]/ul/li/a');
    foreach($links as $link){
        if(!is_null($link)){
            $url_final = $link->getAttribute('href');
            if(Contains($url_final,"/pelicula/")){
                echo $url_final . '<br>';
            }
        }
    }
}else{
    echo "error [1] = " . $response[1];
}

otroooo-56232ed.jpg

Bueno también es importante una clase un poco más adecuada para mirar la respuesta de la cabezera como la que nos ofrece zcriptz o esta por ejemplo: GitHub - shuber/curl: A basic CURL wrapper for PHP me ayudo a mirar la respuesta de las cabecera:

Inserir CODE, HTML ou PHP:
Array
(
    [Http-Version] => 1.1
    [Status-Code] => 200
    [Status] => 200 OK
    [Server] => Sucuri/Cloudproxy
    [Date] => Thu, 09 May 2019 22:19:04 GMT
    [Content-Type] => text/html; charset=UTF-8
    [Transfer-Encoding] => chunked
    [Connection] => keep-alive
    [X-Sucuri-ID] => 12017
    [X-XSS-Protection] => 1; mode=block
    [X-Frame-Options] => SAMEORIGIN
    [X-Content-Type-Options] => nosniff
    [Strict-Transport-Security] => max-age=31536000; includeSubdomains; preload
    [Content-Security-Policy] => upgrade-insecure-requests;
    [Set-Cookie] => PHPSESSID=ggffr8ulqc4cqhp8dlj7j04ih2; path=/
    [Expires] => Thu, 19 Nov 1981 08:52:00 GMT
    [Cache-Control] => no-store, no-cache, must-revalidate, post-check=0, pre-check=0
    [Pragma] => no-cache
    [B][COLOR="#FF0000"][Content-Encoding] => gzip[/COLOR][/B]
    [Vary] => Accept-Encoding
    [Alt-Svc] => quic=":443"; ma=2592000; v="35,37,38,39"
    [X-Sucuri-Cache] => HIT
)

PHP:
$url = "https://www.pelispedia.tv/movies/all/?page=1";
$curl = new Curl;
$curl->user_agent = 'Mozilla/5.0 (Windows NT 6.1; Win64; x64; rv:64.0) Gecko/20100101 Firefox/64.0';
$response = $curl->get($url);

echo "<pre>";
print_r($response->headers);
echo "</pre>";

echo $response->body;
exit;

pd: a mi no me sale You are being redirected...
 
[MENTION=21382]Andres128[/MENTION] Hey que buena clase.
 
Voltar
Topo