長沙手機網(wǎng)站開發(fā)百度seo推廣計劃類型包括
系列文章目錄
01 初始爬蟲
文章目錄
- 系列文章目錄
- 前言
- 1 爬蟲和Python
- 2 爬蟲的矛盾
- 2.1 爬蟲與反爬
- 2.2 robots
- 核心字段
- 重要規(guī)則說明
- 非標準擴展指令
- 協(xié)議生效條件
- 局限性
- 驗證工具
- 2.3 一個爬蟲demo
- 3 Web請求與HTTP協(xié)議
- 3.1 一個web請求的全過程
- 3.2 判斷頁面源代碼位置
- 3.3 HTTP 協(xié)議
- HTTP 請求
- HTTP 響應
- 3.4 requests 模塊入門
- 總結(jié)
前言
- Datawhale是一個專注于AI與數(shù)據(jù)科學的開源組織,匯集了眾多領(lǐng)域院校和知名企業(yè)的優(yōu)秀學習者,聚合了一群有開源精神和探索精神的團隊成員
- 零基礎(chǔ)網(wǎng)絡爬蟲技術(shù)
1 爬蟲和Python
爬蟲就是通過編寫程序來爬取互聯(lián)網(wǎng)上的圖片、音頻、視頻、數(shù)據(jù)等。
- Python 是一門上手快、語法簡單的編程語言。
2 爬蟲的矛盾
2.1 爬蟲與反爬
-
首先,爬蟲在法律上不是被禁止的。
-
爬蟲分為:
- 善意爬蟲,不破壞被爬取的網(wǎng)站的資源,正常訪問,一般頻率不高,不竊取用戶隱私;
- 惡意爬蟲,影響?站的正常運營如搶票,秒殺,瘋狂請求?站資源造成?站宕機;
-
因此網(wǎng)站有了反爬機制,制定相應的策略或者技術(shù)手段,防止爬蟲程序進行網(wǎng)站數(shù)據(jù)的爬取。
-
爬蟲程序就有了反反爬策略,制定相關(guān)的策略或者技術(shù)手段,破解網(wǎng)站中具備的反爬機制。
-
最后,雙方制定君子協(xié)議:
robots 協(xié)議
。 -
根據(jù)協(xié)議,網(wǎng)站管理員可以在網(wǎng)站域名的根目錄下放一個
robots.txt
的文本文件,里面可以指定不同的網(wǎng)絡爬蟲能訪問的頁面和禁止訪問的頁面。網(wǎng)絡爬蟲在采集這個網(wǎng)站之前,首先獲取到這個文件,然后解析到其中的規(guī)則,最后根據(jù)規(guī)則來采集網(wǎng)站的數(shù)據(jù)。
2.2 robots
robots.txt
文件由一組規(guī)則組成,每組規(guī)則以User-agent
開頭,后接允許或禁止的路徑規(guī)則。
核心字段
- User-agent :指定規(guī)則適用的爬蟲名稱(如
*
表示所有爬蟲)。 - Disallow :指定禁止爬蟲訪問的路徑(路徑需為絕對路徑)。
- Allow :指定允許爬蟲訪問的路徑(某些搜索引擎支持,但非標準協(xié)議的一部分)。
- Sitemap :告知爬蟲網(wǎng)站的XML站點地圖位置(幫助索引內(nèi)容)。
重要規(guī)則說明
- 路徑匹配 :
- 使用前綴匹配(如
Disallow: /admin
會禁止/admin/
、/admin.php
等)。 - 支持通配符(如
*
匹配任意字符,$
匹配路徑結(jié)尾,但需搜索引擎支持)。
- 使用前綴匹配(如
- 大小寫敏感 :路徑區(qū)分大小寫(如
/Images/
和/images/
是不同的)。 - 優(yōu)先級 :
Allow
規(guī)則通常優(yōu)先于Disallow
(若同時存在沖突規(guī)則)。 - 最長匹配原則 :當多條規(guī)則沖突時,選擇最長匹配的路徑規(guī)則。
非標準擴展指令
部分搜索引擎支持額外指令(非協(xié)議官方標準):
- Crawl-Delay :設(shè)置爬蟲抓取間隔(如
Crawl-Delay: 10
表示每10秒請求一次)。 - Host :指定首選域名(如
Host: www.example.com
)。 - Clean-param :聲明某些參數(shù)不影響頁面內(nèi)容(如
Clean-param: sessionid /index.php
)。
協(xié)議生效條件
- 文件必須位于網(wǎng)站根目錄(如
https://www.example.com/robots.txt
)。 - 文件編碼需為 UTF-8 ,且無BOM頭。
- 遵循協(xié)議的爬蟲會遵守規(guī)則,但惡意爬蟲可能無視協(xié)議。
局限性
- 不保證隱私 :
robots.txt
無法阻止直接訪問,敏感內(nèi)容需通過身份驗證或其他方式保護。 - 動態(tài)URL處理 :無法完全阻止參數(shù)生成的動態(tài)頁面被爬取。
- 緩存延遲 :爬蟲可能不會實時更新規(guī)則,需等待重新抓取。
驗證工具
- Google Search Console、Bing Webmaster Tools 提供
robots.txt
測試功能。 - 在線工具(如 Robots.txt Checker )可驗證規(guī)則是否正確。
2.3 一個爬蟲demo
- 獲取百度首頁
3 Web請求與HTTP協(xié)議
3.1 一個web請求的全過程
![[Pasted image 20250618162214.png]]
3.2 判斷頁面源代碼位置
- 上面是服務器渲染,即服務器直接把數(shù)據(jù)全部寫入到html中。
- 下面是客戶端渲染,?般是第?次請求服務器返回?堆HTML框架結(jié)構(gòu)。然后再次請求到真正保存數(shù)據(jù)的服務器,由這個服務器返回數(shù)據(jù),最后在瀏覽器上對數(shù)據(jù)進?加載。
![[Pasted image 20250618162420.png]]
3.3 HTTP 協(xié)議
協(xié)議:就是兩個計算機之間為了能夠流暢的進?溝通?設(shè)置的?個君?協(xié)定。
- 常?的協(xié)議有TCP/IP,SOAP協(xié)議,HTTP協(xié)議,SMTP協(xié)議等等。
HTTP協(xié)議:Hyper Text Transfer Protocol(超?本傳輸協(xié)議)的縮寫,是?于從萬維?(WWW:World Wide Web )服務器傳輸超?本到本地瀏覽器的傳送協(xié)議。
HTTP 請求
- 有三塊內(nèi)容:
- 請求? -> 請求?式(get/post) 請求url地址 協(xié)議
- 請求頭 -> 放?些服務器要使?的附加信息
- 請求體 -> ?般放?些請求參數(shù)
請求?式:
-
GET
: 顯示提交 -
POST
: 隱示提交 -
請求頭中最常?的?些重要內(nèi)容(爬?需要):
User-Agent
:請求載體的身份標識(?啥發(fā)送的請求)Referer
:防盜鏈(這次請求是從哪個??來的?反爬會?到)cookie
:本地字符串數(shù)據(jù)信息(?戶登錄信息,反爬的token)
HTTP 響應
- 也有三塊內(nèi)容:
- 狀態(tài)? -> 協(xié)議 狀態(tài)碼
- 響應頭 -> 放?些客戶端要使?的?些附加信息
- 響應體 -> 服務器返回的真正客戶端要?的
- 響應頭中?些重要的內(nèi)容:
Content-Type
:返回內(nèi)容的內(nèi)容類型,比如Content-Type: text/html; charset=utf-8
- 各種神奇的莫名其妙的字符串(這個需要經(jīng)驗了,?般都是token字樣,防?各種攻擊和反爬)
3.4 requests 模塊入門
- 常?的抓取??的模塊通常使??個?
urllib
還要簡單的第三?模塊requests
。
總結(jié)
- Python爬蟲的入門介紹。