2017-07-03 43 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