使用curl php处理动态URL

时间:2017-08-17 07:25:55

标签: php curl

我想从网站上获取一些数据。我有登录凭证,我可以通过curl登录,但是有一个登录过程的第二阶段,我必须回答一个安全问题。

问题是每次我输入用户ID,密码都会重定向到不同的网址。

例如: 登录网址:https://url.com 登录后:https://url?execution=e4s1&action=caDevicePrint(安全q / a页面)

此处'执行= e4s1'登录后每次都在改变,如e1s1,e1s2,e3s2。

我想动态设置CURLOPT_URL。下面是我的代码:

    $this->curl = curl_init();      
    curl_setopt($this->curl, CURLOPT_URL, "https://url?execution=e4s1&action=caDevicePrint"); 
    curl_setopt($this->curl, CURLOPT_FOLLOWLOCATION,1);
    curl_setopt($this->curl, CURLOPT_RETURNTRANSFER,1);
    curl_setopt($this->curl, CURLOPT_SSL_VERIFYPEER,0);
    curl_setopt($this->curl, CURLOPT_USERAGENT,$this->userAgent);       
    curl_setopt($this->curl, CURLOPT_COOKIEJAR,$this->cookieFile);
    curl_setopt($this->curl, CURLOPT_COOKIEFILE,$this->cookieFile);

    $results = curl_exec($this->curl);
    echo $results;
    if (curl_errno($this->curl)) { 
        echo "Failed loading <br>";
        var_dump(curl_error($this->curl));
        die();
    }

    curl_close($this->curl); 

1 个答案:

答案 0 :(得分:0)

你需要抓住标题。这将告诉curl在其响应中包含标题。

curl_setopt( $this->curl, CURLOPT_HEADER, TRUE );

获得标题后,您可以解析它们以查看该网站将您重定向到的URL。