我試圖從Natwest的網上銀行服務中使用PHP/cURL提取信息 - 這個想法是,如果它實際上可以做,那麼我可以做一個更加移動化的網站,訪問該服務的友好站點,或者可能是Android應用。cURL和刮檢查框架支持的網站
這些頁面顯然使用了一些涉及Javascript,框架集和誰知道還有什麼的安全功能。據我所知,Javascript中沒有cookie操作(我可以看到),但是頁面源代碼中生成的URL發生了一些事情......並且每當我嘗試查看將成爲部分的頁面時cURL只顯示框架集頁面。如果我在請求登錄頁面時選擇不遵循重定向,我只會收到一條消息,指出「對象已移動」 - 並指向框架集頁面的鏈接。任何想法,我要去錯了嗎?
<?
$ckfile = tempnam ("/tmp", "COOKIE");
// INITIAL REQUEST TO SITE TO GET COOKIE
$ch = curl_init();
$userAgent = "Mozilla/5.0 (Windows; U; Windows NT 6.1; en-US)"
. "AppleWebKit/534.16 (KHTML, like Gecko) "
. "Chrome/10.0.648.151 Safari/534.16";
curl_setopt($ch,CURLOPT_USERAGENT, $userAgent);
curl_setopt($ch, CURLOPT_URL, 'http://www.nwolb.com');
curl_setopt($ch, CURLOPT_COOKIEJAR, $ckfile);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($ch, CURLOPT_AUTOREFERER, 1);
curl_setopt($ch, CURLOPT_FOLLOWLOCATION, 1);
curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, 0);
curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, 0);
$data = curl_exec($ch);
// EXTRACTING OTHER POSS REDIRECTS/FRAMESET URLs FROM RESULTING PAGE...
// A Javascript function on the default.aspx page specifies a
// top.window.document redirect, I store this in $newurl in case it's needed
preg_match('/top\.window\.document\.location\.href = \'(?P<url>.*)\';/', $data, $newurl);
// It's the login page I want, the Frameset page does specify a link,
// but (what I assume is) the frame-breaking protection sends me back to
// the frameset page every time...
preg_match('/login.aspx\?(?P<referer>.*)"><\/frame>/', $data, $loginurl);
//Subsequent request, attempting to bring up the login page
curl_setopt($ch, CURLOPT_URL, 'https://www.nwolb.com/login.aspx?' . $loginurl['referer']);
$data = curl_exec($ch);
curl_close($ch);
?>
這是一個值得放棄的實驗,還是可能實現? PHP是這份工作的正確工具嗎?或者,試試像Ruby上的Watir這樣的產品會更好嗎?
嗯,你養好指出我將通過代理提供銀行服務的事實,並且可能很快就會被關閉/被起訴。我其實並沒有想到... 我不會經歷它。如果有解決方案,我仍然對解決方案感興趣...純粹是因爲你永遠不知道將來會出現什麼。您提到的「輔助功能」鏈接基本上告訴人們,該網站與具有輔助功能選項的瀏覽器/操作系統兼容,並且如果聽力困難,他們可以使用電話服務。 – t0mgerman 2011-03-27 04:09:39
哎呀 - 你是對的。我誤以爲「加載可訪問性頁面」功能意味着「爲屏幕閱讀器加載頁面」而不是其實際內容 - 「加載說'我們支持屏幕閱讀器'的頁面」。但策略是合理的 - 如果您發現支持移動設備或屏幕閱讀器的頁面,他們通常對iframe,腳本,嵌入式媒體等的依賴程度要低得多。 – 2011-03-27 04:23:39