第一章 初識爬蟲

2021-10-01 03:16:29 字數 3257 閱讀 4563

1、爬蟲的定義:可以自動抓取全球資訊網上資訊的指令碼或程式。

2、爬蟲可以解決的問題:

(1)解決冷啟動的問題。

(2)搜尋引擎的根基。做搜尋引擎,必須使用爬蟲。

(3)幫助機器學習建立知識圖譜。

機器學習最終的是訓練集。訓練集可以靠爬蟲爬去。

(4)可以製作比較軟體。

1、搜尋引擎定義:自動從網際網路蒐集資訊,經過一定整理並儲存,提供給使用者進行查詢的程式或系統。

2、組成: 通用爬蟲

3、通用爬蟲介紹

(1)通用爬蟲定義:就是將網際網路上的網頁【整體】爬取下來,儲存到本地的程式。

(2)搜尋引擎可以獲取所有網頁的原因:把所有網頁都儲存到了本地。

(3)搜尋引擎的待爬取的url的**

b、在其他**上設定的外鏈會被搜尋引擎加入到url佇列。

4、搜尋引擎的工作過程。

(1)抓取網頁:通過通用爬蟲來完成。

(2)資料的儲存。

這個過程會有一定的去重操作。如果這個網頁的內容大部分重複,搜尋引擎可能不會儲存。

(3)預處理

提取出文字

中文分詞。

索引處理。

(4)設定**排名,為使用者提供檢索服務。

5、通用爬蟲的缺陷:

(1)只能爬取原網頁,但是一般網頁中90%的內容都是無用的。

(2)不能滿足不同行業,不同人員的不同需求。

(4)只能通過關鍵字查詢,無法支援語義查詢。

1、robots協議

定義:網路爬蟲排除標準

作用:告訴搜尋引擎哪些可以爬哪些不能爬。

1、什麼是http協議?

超文字傳輸協議,是一種約束發布和接受html頁面的規範。

2、http協議的埠號:80

https協議的埠號:443

3、http協議的特點:

(1)乙個應用層協議。

(2)無連線

每次傳送http都是單獨連線,在http1.1開始,設定乙個請求頭connection,可以實現長連線。

(3)無狀態。

http協議不記錄狀態,每次請求,如果想要到之前請求的內容,必須單獨傳送。

為了解決這種問題,產生一中技術,就叫cookie和session。

4、url:統一資源定位符

(1)主要的作用:用來定位【網際網路】上的任意資源的【位置】。

(2)為什麼url可以用來定位任意資源?

以 http://localhost:8890/index.html 為例

scheme:協議---http

ip的作用找到計算機,port就相當於進入這個計算機門戶

path:資源在伺服器的相對路徑。

原因:url包含的netloc可以定位到任何計算機,進入計算機後通過path就可以找到想要的資源。

(3)url中的特殊符號。

?:問號後面是get請求的請求引數。

&:多個get請求引數拼接使用&

#:錨點--->幫助我們訪問這個鏈結時,頁面可以定位錨點位置。

在爬蟲中,當我們爬去的url有錨點時,記得刪掉。

(4)python的urllib下的parse模組可以幫助我們解析乙個url

from urllib import parse

(parse_result.path)

5、http的工作過程:

(2)分裝http請求資料報

(3)封裝tcp資料報,通過三次握手建立tcp連線。

(4)客戶端傳送請求

(5)伺服器傳送響應。

(6)關閉tcp連線

6、客戶端載入整個頁面的流程

(1)客戶端解析url,封裝資料報,建立連線,給服務傳送請求。

(2)伺服器從資料報中解析出客戶端想要獲取的頁面,把該頁面按層封裝成對應資料報傳遞給客戶端。客戶端再解析資料報,拿到頁面。

(3)客戶端檢查頁面中是否有靜態資源,比如js檔案,image檔案,css檔案,如果有,再分別從伺服器上請求獲取這些資源。

(4)客戶端獲取到所有資源之後,按照html的語法,將頁面完整的顯示出來。

7、客戶端請求request

(1)組成:

請求頭空行

請求資料(請求體)

(2)重要的請求頭:

user-agent:客戶端標識。

accept:允許傳入的檔案型別。

referer:表示產生請求的網頁來自於那個網頁。

防盜煉:伺服器通過檢視referer,判斷訪問路徑是否正確,正確才返回資料

cookie:用request模組無法獲取資料,而返回的內容有cookie,可以在請求的過程中封裝cookie頭;再者用於登入註冊

content-type:post請求的資料型別。

content-length:post請求的請求資料的長度。

x-requested-with:表示這個請求是乙個ajax。

8、伺服器響應response

(1)組成:

狀態行:http協議版本、狀態碼

響應頭空行

響應正文:如果請求乙個html頁面,響應正文就是這個html檔案的內容。

(2)響應頭:

content-type:返回資料型別,告訴客戶端,返回的資源類檔案的型別是什麼。

(3)狀態碼

100~199::表示伺服器成功接受部分請求,還需要發剩餘請求才能處理整個過程。

200-299:表示伺服器成功接受請求並已經處理完整個過程。常用200,表示請求成功。

300-399::為了完成請求,客戶端必須進一步細化請求。

如果請求資源已經移動到其他位置,常用302重定向,304使用快取資源。

400-499::客戶端請求錯誤。常用

404-伺服器無法找到請求內容。

403-伺服器拒絕訪問,許可權不夠

500-599::伺服器發生錯誤。常用

502伺服器發生錯誤。

500:請求未完成,伺服器遇到不可知問題。

爬蟲第一章

爬蟲基礎 什麼是爬蟲?爬蟲是通過程式模擬瀏覽器上網,從網上獲取資料的過程.爬蟲的分類 通用爬蟲 爬取一整個頁面的資料.聚焦爬蟲 爬取頁面中指定的區域性資料 增量式爬蟲 檢測 中資料更新的情況,爬取的是 中最新更新出來的資料.什麼是反爬機制?製作時設定的一系列阻止爬蟲程式進行的阻礙,就是反爬機制,反爬...

第一章 初識Docker

什麼是docker?docker基於linux的多項開源技術提供了搞笑 敏捷和輕量級的容器方案,並且支援在多種主流平台上部署。可以說docker為應用的開發和部署提供了 一站式 的解決方案。docker容器虛擬化的優勢?在開發和運維過程中的優勢 更快速的交付和部署。可以快速建立和刪除容器,實現快速跌...

第一章 初識Redis

redis是一種基於鍵值對的nosql資料庫 支援型別包括string hash list set zset bitmaps hyperloglog geo等多種資料結構和演算法組合。redis會將所有資料儲存到記憶體中,所以它的讀寫速度非常快。redis還可以將記憶體的資料利用快照和日誌的形式儲存...