1. 程式人生 > >Python爬蟲第二篇--基礎篇

Python爬蟲第二篇--基礎篇

爬蟲概念

請求網站並提取資料的自動化程式。

爬蟲基本流程

  1. 發起請求

    通過HTTP庫向目標站點發起請求,即傳送一個Request,請求可以包含額外的header等資訊,等待伺服器響應。

  2. 獲取響應內容

    如果伺服器能正常響應,會得到一個Response,Response的內容便是所要獲取的頁面內容,型別可能有HTML,Json字串,二進位制資料(如圖片視訊)等型別。

  3. 解析內容

    得到的內容可能是HTML,可以用正則表示式、網頁解析庫進行解析。可能是Json,可以直接轉換為Json物件解析,可能是二進位制,可以做儲存或進一步的處理。

  4. 儲存資料

    儲存形式多樣,可以存文字,可以存資料庫或者特定格式的檔案

在這裡插入圖片描述

Request

  • 請求方式

  • 請求URL

    URL全稱統一資源定位符,如一個網頁文件、一張圖片、一個視訊等都可以用URL唯一來確定

  • 請求頭

    包含請求時的頭部資訊,如User-Agent、Host、Cookies等資訊

  • 請求體

Response

  • 響應狀態

    有多種響應狀態,如200代表成功、301代表跳轉、404代表找不到頁面、502伺服器錯誤

  • 響應頭

    如類容型別、內容長度、伺服器資訊、設定Cookie等等

  • 響應體

    最主要的部分包含了請求資源的內容,如網頁HTML、圖片、二進位制等

request與response要和瀏覽器控制檯中network中資源對應學習

爬蟲抓取資料型別

  • 網頁文字

    HTML、Json等

  • 圖片

    二進位制資料,儲存為圖片格式

  • 視訊

    二進位制資料,儲存為視訊格式

  • 其他

    只要是能請求的,都能獲取

爬蟲解析方式

  • 直接處理
  • Json解析
  • 正則表示式
  • BeautifulSoup
  • PyQuery
  • XPath

JavaScript渲染問題

  • 分析Ajax請求
  • Selenium/WebDriver
  • Splash
  • PyV8、Ghost.py

資料儲存

  • 文字

    純文字、Json、xml等

  • 關係型資料庫

    MySQL、Oracle、SQL Server等具有結構化表結構形式儲存

  • 非關係型資料庫

    如MongoDB、Redis等key-value形式儲存

  • 二進位制檔案

    如圖片、視訊、音訊等直接儲存成特定格式