一 爬蟲之基礎

2022-06-18 07:33:09 字數 1741 閱讀 1918

一、爬蟲之基本原理

發起請求

通過http庫向目標站點發起請求,也就是傳送乙個request,請求可以包含額外的header等資訊,等待伺服器響應

獲取響應內容解析內容

得到的內容可能是html,可以用正規表示式,頁面解析庫進行解析,可能是json,可以直接轉換為json物件解析,可能是二進位制資料,可以做儲存或者進一步的處理

儲存資料

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

二、request請求

2.1 請求方式

主要有get/post兩種型別常用型別,另外還有head/put/delete/options

get和post的區別是:get請求的資料放在url中,post則在則是剛在頭部

get:指向的資源發出「顯示」請求,使用get的方法應該只用在讀取資料;

head:與get方法一樣,都是向伺服器發出指定的資源請求,只不過伺服器將不傳回資源的本文部分,好處在於:使用這個方法可以在不必傳輸全部內容的情況下,就可以獲取其中關鍵資源資訊(元資訊,元資料)

put:向指定資源位置上傳其最新的內容

options:這個方法可使伺服器傳回該資源支援的所有http請求方法,用「*」來代替資源名稱,向web伺服器傳送options請求,可以ice 是伺服器功能是否正常運作;

delete:請求伺服器刪除request-uri所標識的資源。

2.2 請求url

url,統一資源定位符,即**

url的格式由三部分組成

1.協議或者是服務方式

2.存有該資源的主機ip位址(+埠號)

3.該資源的具體位址,如介面名,目錄,檔名等

2.3 請求頭

包含請求的頭部資訊,如user-agent,host, cookies

2.4 請求體

請求時攜帶的資料以及表單(post)

三、reponse響應

http響應第一行都是狀態行,接下來是http版本號,狀態碼3位數,以及描述狀態的短語,彼此有空格隔開

3.1 響應狀態

有多種響應狀態,200--成功,301--跳轉,404--url錯誤,502,500--伺服器錯誤

a.、1xx----請求已經被伺服器接受,繼續處理

b、2xx----請求已經被伺服器處理,理解,且接收

c、3xx----重定向問題

d、4xx----請求含有語法錯誤

e、5xx----伺服器端錯誤

常見的狀態彙總:200 ok 請求成功, 400 bad request 客戶端請求有url錯誤,不能被伺服器所理解 ,401 unauthorized 請求未經授權,403 forbidden 伺服器收到請求,但是拒絕提供服務 404 not found 請求資源不存在, 500 internal server error 伺服器發生不可預期的錯誤 

3.2 響應頭

內容型別,型別的長度,伺服器資訊,cookie

3.3 響應體

請求的資源內容,html,,二進位制檔案等

四、爬取資料及處理

4.1 爬取資料型別

網頁文字:html,json格式化文字

4.2 解析資料

直接處理,json解析,正則處理,beautifulsoup解析,pyquery解析,xpath解析

4.3 儲存資料

純文字,xml,json等

爬蟲基礎之Xpath!

參見 參見div 1 獲取本頁面第乙個div div last 獲取本頁面最後乙個div div last 1 獲取倒數第二個div div 1 div last 獲取第乙個div和最後乙個div 從根節點擊取 從匹配選擇的當前節點擊擇文件中的節點,而不考慮它們的位置 div class title...

爬蟲 反爬蟲 系列一 基礎之模擬請求 2

基礎之模擬請求 2 在開發爬蟲程式前,你應該知道你需要的資料來自哪兒,以及怎麼獲取。為了更快的做到這一點,需要對http請求進行模擬進行驗證。以下是我常用的幾種方式,基本上是足夠用了。以南方航空官網為例,假如我想爬南航的機票航班資訊,那麼我會先用瀏覽器除錯一番。瀏覽器除錯 用火狐瀏覽器開啟南航官網,...

爬蟲基礎入門(一)

爬蟲的作用根據是否獲取資料為目的,分類 功能性爬蟲,比如,投票,點讚 資料增量爬蟲,比如招聘資訊 爬蟲的流程robots協議 通過robots協議,告訴我們搜尋引擎哪些頁面可以抓取,哪些頁面不能抓取,但它僅僅是道德層面上的約束。http的重點請求頭 user agent 告訴對方伺服器是什麼客戶端正...