更好的理解爬蟲這個東西

轉載自https://www.cnblogs.com/felixwang2/p/8708076.html,在此十分感謝原作者:寂靜的天空。 

目錄
       一:什麼是爬蟲
       二:爬蟲基本流程
       三:什麼是Requests、Response?
       四:Request包含哪些?
       五:Response中包含什麼?
       六:能抓取怎樣的數據

       七:解析方式
       八:如何解決JavaScript渲染問題?
       九:保存數據

一:什麼是爬蟲

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

二:爬蟲基本流程

a.發起請求

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

b.獲取響應內容

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

c.解析內容

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

d.保存數據

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

 

三:什麼是Requests、Response?

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

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

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

 

四:Request包含哪些?

a、請求方式

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

b、請求URL

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

c、請求頭

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

d、請求體

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

 

五:Response中包含什麼?

a、響應狀態

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

b、響應頭

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

c、響應體

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

 

 六:能抓取怎樣的數據

1、網頁文本:如:HTML文檔,json格式文本。

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

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

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

 

七:解析方式

1、直接處理。

2、json解析

3、正則表達式

4、pyquery

5、xpath

6、beautifulsoup

 

八:如何解決JavaScript渲染問題?

1、分析Ajax

2、Selenium/WebDriver

3、Splash

4、pyV8、Ghost.py

 

九:保存數據

1、文本:純文本,Json,xml

2、關係型數據庫,如mysql、oracle、sql server等具有結構化表結構形式存儲

3、非關係型數據庫,如mongodb、redis等key-value形式存儲。

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

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章