Curl web pague protect

  • Autor Autor xaiborweb
  • Fecha de inicio Fecha de inicio

xaiborweb

Programador
No recomendado
¡Usuario con pocos negocios! ¡Utiliza siempre saldo de 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 ? 😉
 
[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];
}


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:

Insertar CODE, HTML o 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.