寫在前面的話 :最近博主在學習網絡爬蟲的相關技術(基於 Python 語言),做爲一個學習的總結,打算用博客記錄下來,也但願和你們分享一下本身在學習過程當中的點點滴滴,話很少說,讓咱們立刻開始吧html
什麼是網絡爬蟲,這裏先引用一下 百度百科 上的解析:算法
網絡爬蟲是一種按照必定的規則,自動地抓取萬維網信息的程序或者腳本瀏覽器
提及網絡爬蟲,人們經常會用這樣一個比喻:若是把互聯網比喻成一張網,那麼網絡爬蟲就能夠認爲是一個在網上爬來爬去的小蟲子,它經過網頁的連接地址來尋找網頁,經過特定的搜索算法來肯定路線,一般從網站的某一個頁面開始,讀取網頁的內容,找到在網頁中的其它連接地址,而後經過這些連接地址尋找下一個網頁,這樣一直循環下去,直到把這個網站全部網頁都抓取完爲止服務器
下面的圖片很好的展示了通常網絡爬蟲的基本過程,下面讓咱們來詳細解釋一下這張圖片的含義吧網絡
爬蟲的第一個步驟就是對起始 URL 發送請求,以獲取其返回的響應學習
值得注意的是,發送請求實質上是指發送請求報文的過程網站
請求報文 包括如下四個方面:請求行、請求頭、空行和請求體url
可是,每每在使用 Python 相關的網絡請求庫發送請求時,只需關注某些特殊的部分便可,而非完整的請求報文,下面咱們將以粗體的形式標識出咱們須要特別關注的部分翻譯
請求行由請求方法、請求 URL 和 HTTP 協議版本 3 個字段組成,字段間使用空格分隔orm
① 請求方法:請求方法是指對目標資源的操做方式,常見的有 GET 方法和 POST 方法
② 請求 URL:請求 URL 是指目標網站的統一資源定位符 (Uniform Resource Locator,URL)
③ HTTP 協議版本:HTTP 協議是指通訊雙方在通訊流程和內容格式上共同遵照的標準
請求頭 被認爲是請求的配置信息,如下列舉出經常使用的請求頭信息(持續補充中)
空行標誌着請求頭的結束
請求體 根據不一樣的請求方法包含不一樣的內容
若請求方法爲 GET,則此項爲空;若請求方法爲 POST,則此項爲待提交的數據(即表單數據)
爬蟲的第二個步驟就是獲取特定 URL 返回的響應,以提取包含在其中的數據
一樣的,響應實際上是指完整響應報文,它包括四個部分:響應行、響應頭、空行和響應體
響應行由 HTTP 協議版本、狀態碼及其描述組成
① HTTP 協議版本:HTTP 協議是指通訊雙方在通訊流程和內容格式上共同遵照的標準
② 狀態碼及其描述
響應頭 用於描述服務器和數據的基本信息,如下列舉出經常使用的響應頭信息(持續補充中)
空行標誌着響應頭的結束
響應體 就是網站返回的數據,在下一個步驟中咱們須要對其進行分析處理
解析網頁實質上須要完成兩件事情,一是提取網頁上的連接,二是提取網頁上的資源
提取連接實質上是指獲取存在於待解析網頁上的其餘網頁的連接
網絡爬蟲須要給這些連接發送請求,如此循環,直至把特定網站所有抓取完畢爲止
提取數據則是爬蟲的目的,常見的數據類型以下:
最終,咱們能夠對所得到的資源做進一步的處理,從而提取出有價值的信息
【爬蟲系列相關文章】