前言:該系列為爬蟲基礎,適合沒有接觸過python或剛剛起步的同學,如有錯誤,歡迎指出。 --爬蟲的定義: 通過編寫程式,模擬瀏覽器行為瀏覽網頁,獲取互聯網上的數據,也稱為蜘蛛,如:百度;谷歌,都是爬蟲。 註意: 爬蟲是python的一個分支或者說方向,個人自學python(爬蟲)兩年,從0-1,一 ...
前言:該系列為爬蟲基礎,適合沒有接觸過python或剛剛起步的同學,如有錯誤,歡迎指出。
--爬蟲的定義:
通過編寫程式,模擬瀏覽器行為瀏覽網頁,獲取互聯網上的數據,也稱為蜘蛛,如:百度;谷歌,都是爬蟲。
-
爬蟲是python的一個分支或者說方向,個人自學python(爬蟲)兩年,從0-1,一步一步走來,明白其中的辛苦,若你沒有大毅力,就不要自學了;給初學者的建議:第一語言不要學習python,(個人見解,不喜勿噴)。
--爬蟲的分類:
-
通用爬蟲:獲取的只是一個url(網址)下的頁面數據;
-
聚焦爬蟲:根據指定的需求獲取頁面中指定的局部數據;
-
增量式爬蟲:用來監測網站數據更新的情況。
--概念混淆:
-
反爬機制:網站可以採用相關的技術手段或者策略阻止爬蟲對網站的數據獲取(代碼報錯)。
-
反反爬策略:讓爬蟲程式偽裝(破解)網站限制並獲得數據。
--robots協議:君子協議,裡面限制了哪些可爬,哪些不可爬,但是你可以不用遵守。
-
如淘寶下的robots.txt : https://www.taobao.com/robots.txt
--爬蟲流程的概括:
-
獲取網頁源碼 ===》urllib、requests
-
提取所需要的業務數據 ==》BeautifulSoup、xpath、css選擇器、pyquery
-
保存數據 ===》 json、csv、txt(文件存儲)等;
-
自動化程式
--URL(統一資源定位符,俗稱網址)
-
URL的全稱感興趣的可以瞭解一下,我們主要解釋一下它是做什麼的,我們每天網上衝浪,百度瞭解一下,我們在瀏覽器的輸入框=》www.baidu.com 這就是url。
-
如:https://github.com/favicon.ico,我們用URL來唯一指定它的訪問方式,這其中包括了訪問協議https、訪問路徑和資源名稱,通過這樣的鏈接,我們便可以從互聯網上找到資源,這就是url.
--超文本(HTML)
-
你打開一個網址如:www.baidu.com;你所看見的頁面正是通過html以及其他的語言渲染出來的,我們右擊->查看網頁源代碼;或者按F12你會發現有代碼出現,裡面就包括HTML代碼。
--HTTP/HTTPS協議介紹
-
概念:HTTP協議就是伺服器端(網站的伺服器)與客戶端(自己的電腦)之間進行數據交互的一種方式。
-
HTTP工作原理:HTTP協議工作在客戶端-服務端交媾之上的;瀏覽器作為HTTP客戶端通過URL向HTTP服務端即WEB伺服器發送所有請求;Web伺服器根據接收到的請求後,向客戶端發送響應信息。
-
常見的請求頭信息:
accept:瀏覽器通過這個頭告訴伺服器,它所支持的數據類型Accept-Charset: 瀏覽器通過這個頭告訴伺服器,它支持哪種字元集
Accept-Encoding:瀏覽器通過這個頭告訴伺服器,支持的壓縮格式
Accept-Language:瀏覽器通過這個頭告訴伺服器,它的語言環境
Host:瀏覽器通過這個頭告訴伺服器,想訪問哪台主機
If-Modified-Since: 瀏覽器通過這個頭告訴伺服器,緩存數據的時間
Referer:瀏覽器通過這個頭告訴伺服器,客戶機是哪個頁面來的 防盜鏈
Connection:瀏覽器通過這個頭告訴伺服器,請求完後是斷開鏈接還是何持鏈接
X-Requested-With: XMLHttpRequest 代表通過ajax方式進行訪問
User-Agent:請求載體的身份標識 -
常見的響應頭信息:
Location: 伺服器通過這個頭,來告訴瀏覽器跳到哪裡
Server:伺服器通過這個頭,告訴瀏覽器伺服器的型號
Content-Encoding:伺服器通過這個頭,告訴瀏覽器,數據的壓縮格式
Content-Length: 伺服器通過這個頭,告訴瀏覽器回送數據的長度
Content-Language: 伺服器通過這個頭,告訴瀏覽器語言環境
Content-Type:伺服器通過這個頭,告訴瀏覽器回送數據的類型
Refresh:伺服器通過這個頭,告訴瀏覽器定時刷新
Content-Disposition: 伺服器通過這個頭,告訴瀏覽器以下載方式打數據
Transfer-Encoding:伺服器通過這個頭,告訴瀏覽器數據是以分塊方式回送的
Expires: -1 控制瀏覽器不要緩存
-
-
關於怎麼查看請求頭信息/響應頭信息,我會在後面出專門的文章來解惑。
-
關於HTTPS協議定義:HTTPS 安全超文本傳輸協議,HTTPS是在HTTP上建立SSL加密層,並對傳輸數據進行加密,是HTTP協議的安全版。
-
HTTPS的加密演算法演算法包括(簡略):
-
對稱密鑰加密
-
非對稱密鑰加密
-
證書密鑰加密
-
--cookies簡單介紹介紹
-
Cookie 是瀏覽器訪問伺服器後,伺服器傳給瀏覽器的一段數據;
-
瀏覽器需要保存這段數據,不得輕易刪除;
-
此後每次瀏覽器訪問該伺服器,都必須帶上這段數據,這樣才能證明你就是你;
-