我正在尝试从 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;
更新
可以在公司主数据 API 中找到一些新的 API https://data.gov.in