我正在寫一個PHP腳本,搜索和使用捲曲讀取HTML內容。如何確定頁面是否爲登錄頁面?
我想從內容和/或響應頭,以確定目標頁面是否需要登錄後才能訪問。
我明白,通常情況下,當匿名請求頁面時,服務器會在需要重定向到登錄頁面。如我錯了請糾正我。
我看了四周,有幾個想法:
- 搜索
refresh
元標記或當HTTP返回代碼是302,然後檢查是否指的是URI與&action=login
(或類似) - 在有效頁面的正文中搜索登錄表單。 (我認識到在同一頁上可能有內容和登錄表單)
這些方法是否有效以及這些方法有多精確?我可以使用哪些其他技術/標誌來識別/建議登錄頁面?或者,這是一個不可能完成的目標,準確率達到60-70%?
注意:我沒有試圖刮,只是發現它是否是一個登錄頁面。
以下是相關選項,僅作參考。
curl_setopt($ch, CURLOPT_HEADER, 1);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($ch, CURLOPT_FOLLOWLOCATION, 1);
curl_setopt($ch, CURLOPT_MAXREDIRS, 5);
預先感謝您
我認爲你的回答,視乎你要訪問的站點。也就是說,你將不得不做一些preg_match語句來根據特定的數據來確定它。 http代碼並不是登錄頁面是否有效的具體證據(例如任何頁面都可以爲302)。 – PiZzL3 2011-03-29 01:49:01
另外,現在很多網站在很多很多公開頁面上都有登錄表單。那麼多頁面並不一定是「主要的登錄頁面」。 – PiZzL3 2011-03-29 01:50:47
@ PiZzL3 - 是的,我承認這些問題。我想有沒有簡單的方法來確認內容和登錄表單在同一頁面上。無論如何,當你提到「具體數據」時,你究竟指什麼? – JQonfused 2011-03-29 03:35:03