PHP cURL應用實現模擬登錄與採集使用方法詳解
對於做過數據採集的人來說,cURL一定不會陌生。雖然在PHP中有file_get_contents函數可以獲取遠程鏈接的數據,但是它的可控制性太差了,對於各種複雜情況的採集情景,file_get_contents顯得有點無能爲力。因此,本文將爲你介紹採集神器cURL的使用。
工具
火狐瀏覽器(FireFox) + Firebug
“工欲善其事,必先利其器。” 在分析案例之前,先讓我們學習一下如何利用神器Firebug獲取我們必要的信息。
使用F12打開Firebug,我們可以得到如圖(一)界面:
body{margin:0;padding:0}
-
箭頭圖標是“元素選擇”工具,單擊一次會高亮圖標,同時,鼠標在頁面內的移動會同時在HTML菜單中選定相應的內容,此時單擊內容則表示選定了該元素,圖標高亮取消。如圖(二)所示:
body{margin:0;padding:0} -
控制檯
JS裏面的console.log系列函數的打印就是在這裏輸出。 -
HTML
HTML內容,注意這裏看到的不一定是採集要解析的內容,採集時候對內容的分析,一律以查看源碼(Ctrl+U)爲準,這裏只是能快速定位元素的結構,然後再選擇一個比較特殊的參照,在源碼中定位相應的位置。
比如,你在HTML裏面看到一個標籤是,但是你查看源碼時候看到的內容可能是Demo
,如果你對採集內容按照前者去做正則匹配,那麼你會得不到結果。Demo
-
CSS
這裏是CSS文件內容 -
腳本
這裏是Javascript文件內容 -
DOM
Dom節點內容 -
網絡
每一個請求鏈接的數據,這裏是我們採集要關注和分析的地方,它能夠顯示每一個請求的參數、請求頭、Cookie數據等。在頁面提交會刷新的情況下,需要使用保持,使得頁面請求內容在刷新後仍然留着控制檯中,如圖(三)所示:
body{margin:0;padding:0}
另外,火狐還有一款 Tamper data 擴展也能得到請求數據,必要時可以安裝使用。 -
Cookies
Cookie數據
在圖(一)中還看到下面有很多可選的小菜單項,其中保持是我們要關注的,當選擇它的時候,即使提交表單刷新了頁面,下面內容區域的數據還是會保留,這個對於分析提交數據特別關鍵。
總結
我們在分析採集請求的時候,主要關心“網絡”菜單裏的請求數據,必要時候使用“保持”以查看刷新頁面的請求數據,請求前可以使用“清除”先清除下面的內容。
案例解析
一、簡單的採集
這裏所指的簡單採集,是指一個單一頁面GET請求的採集,它簡單得即使通過file_get_contents函數也能輕鬆獲得頁面返回結果。
- 代碼片段之file_get_contents