无法使用cURL在外部网站上提交表单

时间:2019-04-14 08:42:54

标签: php curl

我正在尝试使用cURL从外部网站检索信息,但是该网站返回空白页。

我仔细查看了Chrome的网络功能,我认为我找到了问题,但我不知道如何解决。如下图所示,服务器将发布到特定的URL,然后重定向到另一个显示最终结果的URL。

https://i.imgur.com/973MO4N.png

这是我现在拥有的代码:

$ch = curl_init();

curl_setopt($ch, CURLOPT_URL,"https://www.politie.nl/aangifte-of-melding-doen/controleer-handelspartij.html?_hn:type=action&_hn:ref=r199_r1_r1_r1");
curl_setopt($ch, CURLOPT_POST, 1);
curl_setopt($ch, CURLOPT_POSTFIELDS,"url=&query=test");
curl_setopt($ch, CURLOPT_HTTPHEADER, array('Content-Type: application/x-www-form-urlencoded'));
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);

echo curl_exec ($ch);

curl_close ($ch);

该网站使用荷兰语,但是我要检查的是特定的电子邮件,电话号码或银行帐号,以查看它们是否参与了任何骗局,因此我希望获得用户的相关信息。在网站上提交表单后获得。

此表单位于此网站上:https://www.politie.nl/aangifte-of-melding-doen/controleer-handelspartij.html

我希望有人能帮助我,并感谢您的宝贵时间。

1 个答案:

答案 0 :(得分:0)

正如您对问题的评论之一所指出的那样,提交表单后会发生重定向。不仅如此-表单提交请求和重定向后的请求之间的信息传递是通过会话进行的,会话ID存储在cookie中,因此,为了获得结果,您还必须启用cookie。

// follow redirects
curl_setopt($ch, CURLOPT_FOLLOWLOCATION, true);

// store and send cookies
$tmpfname = dirname(__FILE__).'/cookie.txt';
curl_setopt($ch, CURLOPT_COOKIEJAR, $tmpfname);
curl_setopt($ch, CURLOPT_COOKIEFILE, $tmpfname);