一份關於CURL模擬採集的貼(雖然很…

PHP cURL應用實現模擬登錄與採集使用方法詳解

對於做過數據採集的人來說,cURL一定不會陌生。雖然在PHP中有file_get_contents函數可以獲取遠程鏈接的數據,但是它的可控制性太差了,對於各種複雜情況的採集情景,file_get_contents顯得有點無能爲力。因此,本文將爲你介紹採集神器cURL的使用。

工具

火狐瀏覽器(FireFox) + Firebug

“工欲善其事,必先利其器。” 在分析案例之前,先讓我們學習一下如何利用神器Firebug獲取我們必要的信息。
使用F12打開Firebug,我們可以得到如圖(一)界面:
body{margin:0;padding:0}一份關於CURL模擬採集的貼(雖然很老,適合剛接觸採集的使用)

  1. 箭頭圖標是“元素選擇”工具,單擊一次會高亮圖標,同時,鼠標在頁面內的移動會同時在HTML菜單中選定相應的內容,此時單擊內容則表示選定了該元素,圖標高亮取消。如圖(二)所示:
    body{margin:0;padding:0}一份關於CURL模擬採集的貼(雖然很老,適合剛接觸採集的使用)

  2. 控制檯
    JS裏面的console.log系列函數的打印就是在這裏輸出。
  3. HTML
    HTML內容,注意這裏看到的不一定是採集要解析的內容,採集時候對內容的分析,一律以查看源碼(Ctrl+U)爲準,這裏只是能快速定位元素的結構,然後再選擇一個比較特殊的參照,在源碼中定位相應的位置。
    比如,你在HTML裏面看到一個標籤是
    Demo
    ,但是你查看源碼時候看到的內容可能是
    Demo
    ,如果你對採集內容按照前者去做正則匹配,那麼你會得不到結果。
  4. CSS
    這裏是CSS文件內容
  5. 腳本
    這裏是Javascript文件內容
  6. DOM
    Dom節點內容
  7. 網絡
    每一個請求鏈接的數據,這裏是我們採集要關注和分析的地方,它能夠顯示每一個請求的參數、請求頭、Cookie數據等。在頁面提交會刷新的情況下,需要使用保持,使得頁面請求內容在刷新後仍然留着控制檯中,如圖(三)所示:
    body{margin:0;padding:0}一份關於CURL模擬採集的貼(雖然很老,適合剛接觸採集的使用)
    另外,火狐還有一款 Tamper data 擴展也能得到請求數據,必要時可以安裝使用。
  8. Cookies
    Cookie數據

圖(一)中還看到下面有很多可選的小菜單項,其中保持是我們要關注的,當選擇它的時候,即使提交表單刷新了頁面,下面內容區域的數據還是會保留,這個對於分析提交數據特別關鍵。

總結

我們在分析採集請求的時候,主要關心“網絡”菜單裏的請求數據,必要時候使用“保持”以查看刷新頁面的請求數據,請求前可以使用“清除”先清除下面的內容。

案例解析

一、簡單的採集

這裏所指的簡單採集,是指一個單一頁面GET請求的採集,它簡單得即使通過file_get_contents函數也能輕鬆獲得頁面返回結果。


  • 代碼片段之file_get_contents

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章