我一直在解析一個網站,但當我需要解析的主要頁面之一隻能在iframe中找到時遇到問題。通過Apache的HttpClient訪問iframe頁面
我可以看到父頁面的URL,並嘗試多次通過HttpGet訪問它(當然登錄後可以訪問任何其他帳戶的特定頁面),但它失敗。實際上,我給出的頁面是用戶在沒有登錄的情況下會得到的頁面。然而,在上面我的HttpGet執行這個iframe父母的行中,我顯示我通過cookie登錄。
總之,如何訪問iframe父頁並保持登錄狀態?
我一直在解析一個網站,但當我需要解析的主要頁面之一隻能在iframe中找到時遇到問題。通過Apache的HttpClient訪問iframe頁面
我可以看到父頁面的URL,並嘗試多次通過HttpGet訪問它(當然登錄後可以訪問任何其他帳戶的特定頁面),但它失敗。實際上,我給出的頁面是用戶在沒有登錄的情況下會得到的頁面。然而,在上面我的HttpGet執行這個iframe父母的行中,我顯示我通過cookie登錄。
總之,如何訪問iframe父頁並保持登錄狀態?
我相信這是由於您的日誌cookie沒有與iframe發出的第二個請求相關聯,因此將您重定向到登錄頁面。
您應該能夠通過單獨請求並傳遞您的日誌cookie來查看iframe。例如
HttpURLConnection.setRequestProperty("Cookie", "JSESSIONID=" + sessionId);
感謝您的幫助!然而,在你建議之後,我試着再次將cookie傳遞給它,但是隻要我在iframe父項上執行GET,它就會用新值覆蓋JSESSIONID。 – 2011-06-16 09:11:34
當你說「覆蓋」。什麼時候被覆蓋?請在您最初的問題中發佈您用於提出請求的代碼。最糟糕的情況是iframe請求會創建一個新的未經身份驗證的會話。使用初始登錄請求中的sessionid,並使用該初始JSESSIONID獲取iframe內容。 PS:你發佈這個答案,但它應該是我的答案的評論。 – joostschouten 2011-06-16 10:30:23
請註冊一個帳號,以便您可以編輯並在您的帖子上留言。 – 2011-06-16 11:11:41