Python爬蟲第二篇--基礎篇
阿新 • • 發佈:2018-11-30
爬蟲概念
請求網站並提取資料的自動化程式。
爬蟲基本流程
-
發起請求
通過HTTP庫向目標站點發起請求,即傳送一個Request,請求可以包含額外的header等資訊,等待伺服器響應。
-
獲取響應內容
如果伺服器能正常響應,會得到一個Response,Response的內容便是所要獲取的頁面內容,型別可能有HTML,Json字串,二進位制資料(如圖片視訊)等型別。
-
解析內容
得到的內容可能是HTML,可以用正則表示式、網頁解析庫進行解析。可能是Json,可以直接轉換為Json物件解析,可能是二進位制,可以做儲存或進一步的處理。
-
儲存資料
儲存形式多樣,可以存文字,可以存資料庫或者特定格式的檔案
Request
-
請求方式
- GET和POST
- 區別就是GET把引數包含在URL中,POST通過request body傳遞引數
- GET和POST兩種基本請求方法的區別
- HEAD、PUT、DELETE、OPTIONS等
- GET和POST
-
請求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形式儲存
-
二進位制檔案
如圖片、視訊、音訊等直接儲存成特定格式