我正在尝试从 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;
知道吗,可能出了什么问题或者我是否错过了什么?
最佳答案
您的问题是您尝试获取的网址使用了验证码,并且您无法通过代码绕过它。
您需要使用不需要验证码的网址“ 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;
更新
可以在 company master data API 找到一些新的 API来自https://data.gov.in
关于php - 使用curl和PHP从mca.gov.in获取数据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44885325/