外行學 Python 爬蟲 第二篇 獲取內容

一個無法獲取內容的爬蟲不是一個真正的爬蟲,爬蟲的首要目標是從網絡上獲取內容。目前我們所看到的網頁都是通過超文本傳輸協議「英語:HyperText Transfer Protocol,縮寫:HTTP」在服務器和客戶端之間進行數據交換。

從網站上獲取內容實際上就是一個 HTTP 的通信過程,服務器還是那個服務器,只是客戶端從瀏覽器換成了我們的爬蟲程序。爬蟲程序實現的就是瀏覽器的功能,有很多時候還需要模仿瀏覽器的行爲「比如登錄、獲取 cookie 等等」才能夠從服務器獲取我們需要的數據。

HTTP 通信過程可以簡單的分爲兩個部分請求和應答。請求有客戶端發起、服務器在接收到客戶端的請求後,組織應答數據並將數據通過 HTTP 協議發送給客戶端,請求和應答組成了一個完整的網絡通信過程。

在 HTTP 協議中請求分爲GET、PUT、POST、DELETE 等幾種,GET向指定的資源發出“顯示”請求,以從服務器中獲取數據;PUT向指定資源位置上傳其最新內容;POST向指定資源提交數據,請求服務器進行處理(例如提交表單或者上傳文件);DELETE請求服務器刪除所標識的資源。GET 方法在爬蟲程序中是最主要也是最長用的方法。

在 python 中可以通過內置的 urllib 庫來獲取網站內容,可以通過 Selenium 庫來模擬瀏覽器的行爲。urllib 是 python 標準庫中專門用於網絡請求的庫,強烈建議初學者使用 urllib 來實現網絡請求,urllib 可以完成當前所遇到任何問題。

使用 urllib 僅僅 2 行代碼即可實現網絡內容的讀取:

response = request.urlopen(url, timeout=10)
html = response.read()

在以上代碼中 html 即從網絡上獲取的 url 的網頁內容。

對於 urllib 的使用方法在初識 Python 網絡請求庫 urllib中已經進行過介紹,這裏就不再詳細介紹了。

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