CURL和重定向

时间:2016-10-23 21:10:02

标签: php redirect curl

CURL和重定向

您好。

我使用CURL检查一些网站。我遇到了一些重定向问题。不是每一次,只有少数情况。

在这种情况下,我有一个302代码,但重定向网址与原始网址相同。

转储CURL变量:

array(23) {
["url"]=> string(33) "http://www.apostasurpresa.gov.br/"
["content_type"]=> string(24) "text/html; charset=UTF-8"
["http_code"]=> int(302) 
["header_size"]=> int(180) 
["request_size"]=> int(92) 
["filetime"]=> int(-1) 
["ssl_verify_result"]=> int(0) 
["redirect_count"]=> int(0) 
["total_time"]=> float(0.037685) 
["namelookup_time"]=> float(0.000171) 
["connect_time"]=> float(0.018808) 
["pretransfer_time"]=> float(0.01882) 
["size_upload"]=> float(0) 
["size_download"]=> float(0) 
["speed_download"]=> float(0) 
["speed_upload"]=> float(0) 
["download_content_length"]=> float(0) 
["upload_content_length"]=> float(0) 
["starttransfer_time"]=> float(0.037521) 
["redirect_time"]=> float(0) 
["redirect_url"]=> string(33) "http://www.apostasurpresa.gov.br/"
["primary_ip"]=> string(15) "200.201.166.106" 
["certinfo"]=> array(0) { } } 

卷曲页面:

$ch = curl_init();      
curl_setopt($ch, CURLOPT_AUTOREFERER, 1);
curl_setopt($ch, CURLOPT_CONNECTTIMEOUT ,60);
curl_setopt($ch, CURLOPT_COOKIESESSION  , 1);
curl_setopt($ch, CURLOPT_COOKIEFILE, 'cookies.txt');
curl_setopt($ch, CURLOPT_COOKIEJAR, 'cookies.txt');
curl_setopt($ch, CURLOPT_CUSTOMREQUEST ,'GET');
//      curl_setopt($ch, CURLOPT_FOLLOWLOCATION, 1);
//      curl_setopt($ch, CURLOPT_HEADER, 0);
curl_setopt($ch, CURLOPT_HEADER, 1);  // true
curl_setopt($ch, CURLOPT_MAXREDIRS, 10); 
curl_setopt($ch, CURLOPT_POST, 0);
curl_setopt($ch, CURLOPT_POSTREDIR, 6);// 3 => 6
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, 0); // false
curl_setopt($ch, CURLOPT_TIMEOUT, 60); 
curl_setopt($ch, CURLOPT_URL, $url);
curl_setopt($ch, CURLOPT_USERAGENT, "MozillaXYZ/1.0");
$txt_pagina = curl_exec($ch); 
$info=curl_getinfo($ch);
curl_close($ch);

由于

1 个答案:

答案 0 :(得分:0)

好的,在评论后跟进答案:)

我使用wget检查了这一点,它实际上会重定向到几个地方,然后登陆您在上面提供的门户页面网址上。

原始网址抛出302,返回自身,然后返回301.然后重定向到的网址会产生大量的javascript,然后javascript会重定向。

所以你的代码没有用,因为它没有解析javascript来重定向......

所以...解决方案。为什么不直接指向门户页面而不是处理多个重定向?如果网址没有以/结尾使用http://loterias.caixa.gov.br/wps/portal/loterias/作为您的网址,则门户网站会重定向。