使用 curl php 处理动态 url



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

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

例如: 登录网址 : https://url.com 登录后:https://url?execution=e4s1&action=caDevicePrint (Security q/a page(

在这里,"execution=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); 

您需要获取标题。 这将告诉curl在其响应中包含标头。

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

获得标头后,您可以解析它们以查看站点将您重定向到的 URL 是什么。

最新更新