Autor Zpráva
Tomkinss
Profil
Ahoj, mam problem so ziskanim dat cez cURL z https stranky.
Robim request na konkretny streanu, ktora je https, nasleduje redirect na inu podstranku, kde mi chce zmenit protokol na https.

Moj script je:
    $options = array( 
    CURLOPT_RETURNTRANSFER => true,     // return web page 
    CURLOPT_HEADER         => true,    // return headers 
    CURLOPT_FOLLOWLOCATION => true,     // follow redirects 
    CURLOPT_ENCODING       => "",       // handle all encodings 
    CURLOPT_USERAGENT      => "spider", // who am i 
    CURLOPT_AUTOREFERER    => true,     // set referer on redirect 
    CURLOPT_CONNECTTIMEOUT => 120,      // timeout on connect 
    CURLOPT_TIMEOUT        => 120,      // timeout on response 
    CURLOPT_MAXREDIRS      => 20,       // stop after 10 redirects 
    CURLOPT_SSL_VERIFYPEER => true,        // this also
    CURLOPT_CAINFO => Yii::app()->request->getBaseUrl(true)."/cacert.pem", // certificate
);
        
$ch = curl_init($workerLocation); 
curl_setopt_array($ch, $options);
        
$out = fopen($fileLocation, 'wb');
curl_setopt($ch, CURLOPT_FILE, $out);
        
$content    = curl_exec($ch); 
fclose($out);

cURL sa vzdy zasekne na stranke s redirectom na verziu s https.
Vratene data su:
<!DOCTYPE html>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
<title>Titulok stranky</title>
<link rel="icon" type="image/ico" href="favicon.ico" />
<script type="text/javascript">
    if ('https:' !== location.protocol) location.replace(location.toString().replace(location.protocol, 'https:'));
</script>
<script type="text/javascript" src="src/includes.js"></script>
<link rel="search" type="application/opensearchdescription+xml" href="xml/search.xml" />
</head>
<body>
<script type="text/javascript">
    if (!location.hash || '_=_' == location.hash) location.replace('/#' + location.pathname + location.search);
</script>
<noscript>
    <meta http-equiv="refresh" content="0;?nojs" />
    <a href="?nojs">HTML only version</a>
</noscript>
</body>
</html>

Skusal som uz kopec moznosti, cez kombinacie CURLOPT_SSL_VERIFYHOST, CURLOPT_SSL_VERIFYPEER.
Nestretli ste sa niekto s podobnym problemom ?

Dakujem.
Davex
Profil
Není problém spíš v tom, že je stránka závislá na JavaScriptu a při stažení cURLem se musí následovat odkaz na neJavaScriptovou verzi?
Tomkinss
Profil
Davex:
To je super hint. Predpokladam, ze tento problem nevyriesim, kedze v cURL js nefunguje. Alebo ?
Davex
Profil
Tomkinss:
Predpokladam, ze tento problem nevyriesim, kedze v cURL js nefunguje.
Proč? S tou neJavaScriptovou verzí na adrese ?nojs je něco v nepořádku?
Tomkinss
Profil
Davex:
No kedz mi cURL vrati len tento html kod a nie subor, ktory sa pokusam stiahnut, tak predpokladam, ze este bude niekde chyba.
Dik za rady, skusim este nieco poskusat.

Vaše odpověď


Prosím používejte diakritiku a interpunkci.

Ochrana proti spamu. Napište prosím číslo dvě-sta čtyřicet-sedm: