我一直在尋找與我曾使用cURL獲取某個網站信息問題的幫助。登入幫助到網站使用PHP +捲曲
我使用curl這樣的新手,所以我需要這個了一些指導。我需要自動登錄到3dstats.com,然後恢復數據列表。列表中沒有問題,我已經在制定解決方案;這是我無法工作的登錄信息。登錄表單,經過多次清理,是這樣的:
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta name="generator" content=
"HTML Tidy for Windows (vers 14 February 2006), see www.w3.org" />
<title></title>
</head>
<body>
<form action="/cgi-bin/edit2.cgi" method="post">
<input type="hidden" name="type" value="2" />
<input type="text" class="flinput" size="40" name="usr" value="00000000" />
<input type="password" size="40" name="UsrPass" class="flinput" />
<input type="submit" value="Submit " class="binput" />
</form>
</body>
</html>
所以,我需要發送3個變量,類型,usr和UsrPass。如果我保存此頁面並單擊提交,表單工作正常(在將字段更改爲隱藏並使用正確的登錄值填充它們之後)。 但是,如果我這樣做:
<?php
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, "http://3dstats.com/cgi-bin/edit2.cgi");
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($ch, CURLOPT_POST, true);
$data = array("type" => "44",
"usr" => "correct8-digitNumber",
"UsrPass" => "correctPassword");
curl_setopt($ch, CURLOPT_POSTFIELDS, $data);
curl_setopt($ch, CURLOPT_COOKIEJAR, '/3dstats/cookies.txt');
curl_setopt($ch, CURLOPT_COOKIEFILE, '/3dstats/cookies.txt');
$output = curl_exec($ch);
$info = curl_getinfo($ch);
echo "<pre>";
print_r($info);
echo "</pre>";
echo $output;
curl_close($ch);
?>
形式的回報:「錯誤:錯誤賬戶」,用賬號已經填充爲「0000」(注意空格)。該帳戶是一個8位數字。
任何想法,我做錯了嗎?該頁面表示它正在使用Cookie。以後捕獲/使用它們的正確形式是什麼?我正在嘗試的似乎沒有工作。
在此先感謝您的任何幫助/建議。
我試圖從中獲取信息的網站不是我的。我正在編寫一個抓取工具,以便從我試圖登錄的網站3dstats.com發佈訪問者信息報告。基本上,我試圖達到的是:使用我的用戶名/密碼登錄到3dstats.com。登錄後,操縱查詢字符串以獲取我需要的報告。然後,獲取HTML並提取製作報告所需的信息。 – kenshin23 2011-06-13 18:33:52