1. 程式人生 > >爬蟲基本原理2

爬蟲基本原理2

alt option mongo 種類型 瀏覽器 get 部分 json 頭部

什麽是爬?

請求?網站並提取數據的?自動化程序

爬蟲的基本流程

發起請求

通過HTTP庫向?目標站點發起請求,即發送?個Request,請求可以包含額外的headers等信息,等待服務器響應。

獲取相應內容

如果服務器?能正常響應,會得到?一個Response,Response的內容便是所要獲取的?面內容,類型可能有HTML,Json字符串串,?二進制數據(如圖片視頻)等類型。

解析內容

得到的內容可能是HTML,可以?用正則表達式、?頁解析庫進行解析。可能是Json,可以直接轉為Json對象解析,可能是二進制數據,可以做保存或者進一步的處理。

保存數據

保存形式多樣,可以存為?文本,也可以保存至數據庫,或者保存特定格式的文件。

Request與Response

(1)瀏覽器就發送消息給該?網址所在的服務器,這個過程叫做HTTP Request。

(2)服務器收到瀏覽器發送的消息後,能夠根據瀏覽?發送消息的內容,做相應處理,然後把消息回傳給瀏覽?。這個過程叫做HTTP Response。

(3)瀏覽器收到服務器的Response信息後,會對信息進行相應處理,然後展示。

技術分享圖片

Request中包含什麽

請求方式

主要有GET、POST兩種類型,另外還有HEAD、PUT、DELETE、OPTIONS等。

請求URL

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

請求頭

包含請求時的頭部信息,如User-Agent、Host、Cookies等信息。

請求體

請求時額外攜帶的數據,如表單提交時的表單數據

Response中包含什麽

響應狀態

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

響應頭

如內容類型、內容長度、服務器信息、設置Cookie等等。

響應體

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

能抓怎樣的數據

網頁文本:如HTML文檔、Json格式文本等。

圖片:獲取到的是二進制文件,保存為圖片格式。

視頻:同為二進制文件,保存為視頻格式即可。

其他:只要是能請求到的,都能獲取。

怎樣來解析

直接處理

Json解析

正則表達式

BeautifulSoup

XPath

PyQuery

怎樣保存數據

文本:純文本、Json、Xml等。

關系型數據庫:如MySQL、Oracle、SQL Server等具有結構化表結構形式存儲。

關系型數據庫:如MongoDB、Redis等Key-Value形式存儲。

二進制文件:如圖?片、視頻、音頻等直接保存成特定格式即可。

技術分享圖片

爬蟲基本原理2