我正在尝试从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;
任何想法,可能出错或者我错过了什么?
答案 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;