目錄
1.爬蟲--定義
2.爬蟲--組成
3.爬蟲--URL
1.爬蟲--定義
?????????網絡爬蟲,是一種按照一定規則,自動抓取互聯網信息的程序或者腳本。另外一些不常使用的名字還有螞蟻、自動索引、模擬程序或者蠕蟲。隨著網絡的迅速發展,萬維網成為大量信息的載體,如何有效地提取并利用這些信息成為一個巨大的挑戰。例如:傳統的通用搜索引擎AltaVista,Yahoo!和Google等,作為一個輔助人們檢索信息的工具也存在著一定的局限性,通用搜索引擎的目標是盡可能大的網絡覆蓋率,返回的結果包含大量用戶不關心的網頁,為了解決上述問題,定向抓取相關網頁資源的爬蟲應運而生。
? ? ????????由于互聯網數據的多樣性和資源的有限性,根據用戶需求定向抓取網頁并分析,已成為主流的爬取策略。只要你能通過瀏覽器訪問的數據都可以通過爬蟲獲取,爬蟲的本質是模擬瀏覽器打開網頁,獲取網頁中我們想要的那部分數據。
2.爬蟲--組成
模塊 | 核心功能 | 常用工具/技術 | 關鍵優化點 |
---|---|---|---|
調度器 | 管理URL抓取優先級與任務隊列 | Scrapy調度器、Redis隊列、RabbitMQ | 去重策略、分布式任務分配 |
下載器 | 發送HTTP請求獲取網頁內容 | requests、aiohttp、Selenium | 代理輪換、請求頭偽裝、異步并發 |
解析器 | 提取數據(文本/API響應) | BeautifulSoup、XPath、正則表達式 | 動態渲染、數據清洗與結構化 |
數據存儲 | 持久化存儲抓取結果 | MySQL/MongoDB、CSV/JSON文件、Elasticsearch | 批量插入、索引優化 |
反爬策略 | 繞過反爬機制(驗證碼、頻率限制) | 代理IP池、OCR打碼、Cookies模擬登錄 | 請求延遲隨機化、User-Agent輪換 |
監控與日志 | 記錄運行狀態與異常報警 | logging模塊、Prometheus+Grafana | 錯誤重試、性能指標可視化 |
3.爬蟲--URL
術語 | 定義 | 核心功能 | 示例 |
---|---|---|---|
網頁(Web Page) | 由HTML/CSS/JavaScript編寫的單個文檔,通過瀏覽器渲染顯示內容。 | 展示文本、圖像、視頻等具體信息。 | https://example.com/about.html |
網站(Website) | 由多個相互鏈接的網頁組成的集合,共享同一域名和主題。 | 提供完整服務或信息體系(如電商、博客)。 | https://example.com ?(含主頁、子頁面) |
網絡服務器(Web Server) | 存儲網站文件(網頁、圖片等)的硬件/軟件,響應客戶端請求并返回數據。 | 托管網站內容,處理HTTP請求(如Apache、Nginx)。 | 阿里云ECS、AWS EC2實例 |
搜索引擎(Search Engine) | 通過爬蟲索引網頁,提供關鍵詞檢索服務的系統。 | 快速定位全網公開資源(如網頁、圖片)。 | Google、百度、Bing |
URL:?
? ? 早在1989年,網絡發明人蒂姆·伯納斯 - 李(Tim Berners-Lee)就提出了網站的三大支柱:
? ? 1)URL ,跟蹤Web文檔的地址系統
? ? 2)HTTP,一個傳輸協議,以便在給定URL時查找文檔
? ? 3)HTML, 允許嵌入超鏈接的文檔格式
? ? ?Web的最初目的是提供一種簡單的方式來訪問,閱讀和瀏覽文本文檔。從那時起,網絡已經發展到提供圖像,視頻和二進制數據的訪問,但是這些改進幾乎沒有改變三大支柱。
? ? 在Web之前,很難訪問文檔并從一個文檔跳轉到另一個文檔。WWW(World Wide Web,萬維網)簡稱為3W,使用統一資源定位符(URL)來標志WWW上的各種文檔。
? ? 完整的工作流程如下∶
- Web用戶使用瀏覽器(指定URL)與Web服務器建立連接,并發送瀏覽請求。
- Web服務器把URL轉換為文件路徑,并返回信息給 Web瀏覽器。
- 通信完成,關閉連接。
? ? HTTP:超文本傳送協議(HTTP)是在客戶程序(如瀏覽器)與WWW服務器程序之間進行交互所使用的協議。HTTP使用統一資源標識符(Uniform Resource Identifiers, URI)來傳輸數據和建立連接,它使用TCP連接進行可靠傳輸,服務器默認監聽在80端口。?
? ? URL:代表統一資源定位器。URL 只不過是 Web 上給定的唯一資源的地址。理論上,每個有效的 URL 都指向一個唯一的資源。此類資源可以是 HTML 頁面、CSS 文檔、圖像等。
組成部分 說明 **示例(以? http://www.example.com:80/path/to/myfile.html?key1=value1#anchor
?為例)協議 指定訪問資源的協議(如? http
、https
、ftp
),后跟?://
?分隔符。http:
域名/IP 服務器的地址(如? www.example.com
?或?192.168.1.1
)。www.example.com
端口 可選,服務器監聽的端口號(默認端口可省略,如 HTTP 默認? 80
)。:80
(可省略)資源路徑 服務器上資源的路徑,包含虛擬目錄和文件名。 /path/to/myfile.html
查詢參數 可選,以? ?
?開頭,鍵值對形式(如??key1=value1&key2=value2
)。?key1=value1
錨點 可選,以? #
?開頭,指向資源內的特定位置(如 HTML 錨點或視頻時間戳)。#anchor