使用curl和PHP

时间:2017-07-03 12:14:38

标签: php curl

我正在尝试从http://mca.gov.in获取数据。我使用CURL和PHP来提取数据。

以下是表格:http://www.mca.gov.in/mcafoportal/viewSignatoryDetails.do

当我将HTML表单直接通过此HTML表单提交到(“http://www.mca.gov.in/mcafoportal/viewSignatoryDetails.do”)时,它可以正常工作。

我开发了自己的表单并直接提交到上面的链接,它也有效。

但是,当我使用curl传递相同的参数来检索数据时,它不会提供任何数据。

以下是我用于从http://mca.gov.in获取数据的代码。

$data = http_build_query($post_data);

curl_setopt($ch, CURLOPT_URL, "http://www.mca.gov.in/mcafoportal/viewSignatoryDetailsAction.do"); 
curl_setopt($ch, CURLOPT_HEADER, 0);
curl_setopt($ch, CURLOPT_POST, 1);
curl_setopt($ch, CURLOPT_POSTFIELDS, $data);
curl_setopt($ch, CURLOPT_FOLLOWLOCATION, 0);

curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);

$result = curl_exec($ch);
echo $result;

任何想法,可能出错或者我错过了什么?

1 个答案:

答案 0 :(得分:3)

您的问题是,您尝试获取的网址使用验证码,您无法通过代码绕过此网址。

您需要使用不需要验证码的此网址“ http://www.mca.gov.in/mcafoportal/popupSignatories.do ”。

所以将代码更改为:

curl_setopt($ch, CURLOPT_URL, "http://www.mca.gov.in/mcafoportal/popupSignatories.do");
curl_setopt($ch, CURLOPT_HEADER, 0);
curl_setopt($ch, CURLOPT_POST, 1);
curl_setopt($ch, CURLOPT_POSTFIELDS, array(
    "companyid" => "AAA-4416"
));
curl_setopt($ch, CURLOPT_FOLLOWLOCATION, 0);

curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);

$result = curl_exec($ch);
echo $result;

此外,如果您需要公司详细信息,请使用 http://www.mca.gov.in/mcafoportal/companyMasterDataPopup.do

curl_setopt($ch, CURLOPT_URL, "http://www.mca.gov.in/mcafoportal/companyMasterDataPopup.do"); 
curl_setopt($ch, CURLOPT_POSTFIELDS, array(
    "method" => "ajaxGetCompanyMasterData",
    "companyid" => 'AAA-4416'
));
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);

$result = curl_exec($ch);

echo $result;