我想从网站上获取一些数据。我有登录凭据,我可以通过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 是什么。