python爬蟲---初識爬蟲

我們開始來談談python的爬蟲。

1.什麼是爬蟲:
  網絡爬蟲是一種按照一定的規則,自動地抓取萬維網信息的程序或者腳本。另外一些不常使用的名字還有螞蟻、自動索引、模擬程序或者蠕蟲。互聯網猶如一個大蜘蛛網,我們的爬蟲就猶如一個蜘蛛,當在互聯網遇到所需要的資源,我們就會爬取下來,即爲爬蟲是一個請求網站並且提取數據的自動化程序。

2.下面我們來提到兩個名詞:
  1)請求,request即爲我們的請求,當我們在瀏覽器內輸入網址,敲擊回車時,這時瀏覽器就會發送消息給該網址所在的服務器,這個過程叫做HTTP Request
  2)響應,response即爲我們的響應,服務器在接收到瀏覽器發送的消息後,能夠根據瀏覽器發送消息的內容做出相應的處理,然後把消息回傳給瀏覽器。這個過程就做HTTP Response。瀏覽器收到服務器的Response信息後,會對信息進行處理,然後展示。
  
3.Request中包含什麼?
  1)請求方式,請求方式主要包含get,post,另外還有put,head,delete,options等,但我們常用的、常見的還是get和post請求。
    get請求:get請求方式所有的參數都包含在URL地址裏,get請求可以直接在瀏覽器地址欄內輸入URL地址,然後直接訪問。
    post請求:比get方式多包含一個formdata數據,且參數沒有在URL地址內。不可以直接在地址欄訪問,需要構造一個form表單,進行提交訪問。
    同時post請求所有參數不顯示地址欄內,相對於get請求來說更安全。
  2)請求URL,URL全稱統一資源定位符,如一個網頁文檔、一張圖片、一個視頻等都可以用URL唯一來確定。
  3)請求頭,包含請求時的頭部信息,如User-Agent、Host、Cookies等信息,請求頭是一個很重要的參數,在很多爬蟲裏需要設置請求頭信息,
    一般權限驗證,瀏覽器類型等信息,如下圖所示:
在這裏插入圖片描述4)請求體,請求時額外攜帶的數據,如表單提交時的表單數據,一般來說get方式請求時,都沒有請求體。

4.Response中包含什麼?
  1)響應狀態,有多種響應狀態,如200代表成功,404找不到頁面,500服務器錯誤
    擴展:
      -1xx :報告的 -請求被接收到,繼續處理
      -2xx :成功 - 被成功地接收(received),理解(understood),接受(accepted)的動作 。
      -3xx :重發 - 爲了完成請求必須採取進一步的動作。
      -4xx :客戶端出錯 - 請求包括錯的語法或不能被滿足。
      -5xx :服務器出錯 - 服務器無法完成顯然有效的請求。
  2)響應頭,如內容類型、內容長度、服務器信息、設置Cookie等等信息。如圖所示:
 在這裏插入圖片描述 
  3)響應體,最主要的部分,包含了請求資源的內容,如網頁HTML,圖片,二進制數據(視頻,圖片等)等信息。
    我們爬取的數據大部分就是從這個部分獲取的
    
5.我們所需要的環境和資源
  1)python環境,最好是python3,python2在2020年就不再維護了,語法還是有一定差異的,我建議使用python3。
  2)redis,mongo分關係型數據庫,安裝過程自行百度。(後期會有專門的博客來說明講解非關係型數據庫)。
  3)scrapy環境,pip install scrapy即可安裝。
  4)Urllib庫,Requests庫,BeautifulSoup庫,PyQuery,Selenium和與其相關聯的環境配置(後面我們會逐個來說明每一個庫和其操作使用方法)。

總結:爬蟲是一個請求網站並且提取數據的自動化程序。有的是通過原生html標籤就可以獲取到數據,則有的需要通過解析ajax請求來取得數據。
最近搞了一個個人公衆號,會每天更新一篇原創博文,java,python,自然語言處理相關的知識有興趣的小夥伴可以關注一下。