2017-07-03 88 views
2

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

这里是形式: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

现场有验证码,您是如何绕过? – Dhyey

回答

2

你的问题是,你试图获取的URL使用验证码,你不能绕过代码。

您需要使用这个网址“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; 
+1

Hello @Jannes Botis,你不会相信,在发布这个问题后,我实际上使用了相同的方法(通过对JS文件进行搜索)。非常感谢你的代码。感谢你的帮助。 – Kiran