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還可以將記憶體的資料利用快照和日誌的形式儲存...