0
我正在嘗試使用cURL來自動執行涉及多個步驟的登錄。我遇到的問題是我登錄的第一頁正常,但下一頁我打了我必須選擇或點擊鏈接才能繼續。我怎麼「繼續前進」。我試着拿下一個URL並將其放入我的cURL代碼中,但它不起作用,因爲它直接進入該頁面和錯誤,因爲我沒有進入登錄過程的第一頁。這是我的代碼。cURL遍歷多個頁面的登錄
$ch = curl_init();
$data = array('fp_software' => '', 'fp_screen' => '', 'fp_browser' => '','txtUsername' => "$username", 'btnLogin' => 'Log In');
curl_setopt($ch, CURLOPT_USERAGENT,'Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US; rv:1.8.1.13) Gecko/20080311 Firefox/2.0.0.13');
curl_setopt($ch, CURLOPT_URL, 'https://www.website.com/Login.aspx');
curl_setopt($ch, CURLOPT_POST, 1);
curl_setopt($ch, CURLOPT_POSTFIELDS, $data);
curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false);
curl_exec($ch);
curl_close ($ch);
下一個URL是www.website.com/PassMarkFrame.aspx - 基本上,我需要抓取拋出此登錄過程。
我試過這個......但它沒有工作。
curl_setopt($ch, CURLOPT_USERAGENT,'Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US; rv:1.8.1.13) Gecko/20080311 Firefox/2.0.0.13');
curl_setopt($ch, CURLOPT_URL, 'https://www.website.com/Login.aspx'); // use the URL that shows up in your <form action="...url..."> tag
curl_setopt($ch, CURLOPT_POST, 1);
curl_setopt($ch, CURLOPT_POSTFIELDS, $data);
curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false);
curl_exec($ch);
curl_setopt($ch, CURLOPT_URL, 'https://www.website.com/PassMarkFrame.aspx'); // use the URL that shows up in your <form action="...url..."> tag
curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false);
curl_exec($ch);
curl_close ($ch);
這是正確的語法嗎?
上面做了更改,但仍然有相同的結果。我必須允許它存儲Cookie嗎? – 2012-02-02 15:55:34
是的,你需要允許cookies – pduersteler 2012-02-02 15:57:38
感謝您的幫助!它在設置cookie並擺脫curl_close後爲我工作。 – 2012-02-02 16:09:38