[TOC]
# 爬蟲的基本原理
> 爬蟲可以理解為模擬用戶在瀏覽器或者某個應用上的操作,把操作的過程、實現自動化的程序或腳本。
爬蟲是如何實現的呢?
想知道如何實現爬蟲,需要先了解在瀏覽網頁的時候都發生了什么事情?**知其然,更要知其所以然!**
接下來我們通過示例說明實現爬蟲的基本原理。
## 當我們在瀏覽器中輸入網址`www.baidu.com`后回車發生了什么?
我們來看看這張圖:

**瀏覽器與服務器之間的交互過程說明:**
1. 瀏覽器詢問DNS服務器獲取`www.baidu.com`的真實IP地址;
2. 返回真實的IP地址給瀏覽器;
3. 瀏覽器使用`真實IP地址`連接`www.baidu.com`的Web服務器,請求頁面數據。
4. `www.baidu.com`的Web服務器接收到這個請求后,響應并返回頁面文檔數據給瀏覽器。
5. 可以愉快的看到頁面啦。
**整個過程中的關鍵信息為:**
1. 瀏覽器與服務器之間的網絡通信協議: HTTP協議
2. 瀏覽器與服務器之間的數據格式: HTML超文本標記格式
`HTTP協議` 的作用是建立`瀏覽器`與`Web服務器`之間的通信連接通道, 這個通信通道可以傳一段文本信息、一個圖片或者一個文件都可以。這是數據傳輸的基礎。
`HTML超文本標記語言格式` 的作用是告訴`瀏覽器`應該如何顯示收到的文檔數據。
>注:暫時忽略DNS服務器交互過程,這與爬蟲邏輯無關,它只于獲取IP地址速度有關。
---
**爬蟲原理本質?**
如果理解了上面的示例交互過程,那么對于理解`爬蟲`的本質就不難了。
我們的`爬蟲`本質就是在使用`HTTP協議` 來模擬瀏覽器行為與`Web服務器`交互獲取`HTML`頁面數據并解析處理的工具。
那么`HTTP協議`到底是什么呢?`HTML超文本標記語言`又是怎樣描述Web頁面的呢?
接下來我們就來一個一個的學習。提升自己的內功就在于點滴的積累。
- 課程大綱
- 入門篇
- 爬蟲是什么
- 為什么要學習爬蟲
- 爬蟲的基本原理
- TCP/IP協議族的基本知識
- HTTP協議基礎知識
- HTML基礎知識
- HTML_DOM基礎知識
- urllib3庫的基本使用
- requests庫的基本使用
- Web頁面數據解析處理方法
- re庫正則表達式的基礎使用
- CSS選擇器參考手冊
- XPath快速了解
- 實戰練習:百度貼吧熱議榜
- 進階篇
- 服務端渲染(CSR)頁面抓取方法
- 客戶端渲染(CSR)頁面抓取方法
- Selenium庫的基本使用
- Selenium庫的高級使用
- Selenium調用JavaScript方法
- Selenium庫的遠程WebDriver
- APP移動端數據抓取基礎知識
- HTTP協議代理抓包分析方法
- Appium測試Android應用基礎環境準備
- Appium爬蟲編寫實戰學習
- Appium的元素相關的方法
- Appium的Device相關操作方法
- Appium的交互操作方法
- 代理池的使用與搭建
- Cookies池的搭建與用法
- 數據持久化-數據庫的基礎操作方法(mysql/redis/mongodb)
- 執行JS之execjs庫使用
- 高級篇
- Scrapy的基本知識
- Scrapy的Spider詳細介紹
- Scrapy的Selector選擇器使用方法
- Scrapy的Item使用方法
- Scrapy的ItemPipeline使用方法
- Scrapy的Shell調試方法
- Scrapy的Proxy設置方法
- Scrapy的Referer填充策略
- Scrapy的服務端部署方法
- Scrapy的分布式爬蟲部署方法
- Headless瀏覽器-pyppeteer基礎知識
- Headless瀏覽器-pyppeteer常用的設置方法
- Headless瀏覽器-反爬應對辦法
- 爬蟲設置技巧-UserAgent設置
- 反爬策略之驗證碼處理方法
- 反爬識別碼之點擊文字圖片的自動識別方法
- 反爬字體處理方法總結
- 防止反爬蟲的設置技巧總結
- 實戰篇
- AJAX接口-CSDN技術博客文章標題爬取
- AJAX接口-拉購網職位搜索爬蟲
- 執行JS示例方法一之動漫圖片地址獲取方法
- JS執行方法示例二完整mangabz漫畫爬蟲示例
- 應用實踐-SOCKS代理池爬蟲
- 落霞小說爬蟲自動制作epub電子書
- 一種簡單的適用于分布式模式知乎用戶信息爬蟲實現示例
- 法律安全說明