python 爬蟲實戰的原理
二、原理
功能:下載網頁資料,為搜尋引擎系統提供資料來源。元件:控制器、解析器、資源庫。
Web網路爬蟲系統首先將種子URL放入下載佇列,然後簡單地從隊首中取出一個URL下載其對應的網頁。得到網頁的內容將其儲存後,再經過解析網頁中的連結資訊可以得到一些新的URL,將這些URL加入下載佇列。然後取出一個URL,對其對應的網頁進行下載,再解析,如此反覆進行,直到遍歷了整個網路或滿足某種條件後才會停止下來。
三、爬蟲分類
1、傳統爬蟲
傳統爬蟲從一個或若干初始網頁的URL開始,獲得初始網頁上的URL,在抓取網頁過程中,不斷從當前頁面上抽取新的URL放入佇列,直到滿足系統的一定停止條件。
2、聚焦爬蟲
聚焦爬蟲工作流程較為複雜,需要根據一定的網頁分析演算法過濾與主題無關的連結,保留有用連結並將其放入等待抓取URL佇列。然後它將根據一定搜尋策略從佇列中選擇下一步要抓取的網頁URL,並重覆上述過程,直到達到系統某一條件時停止。另外所有被爬蟲抓取的網頁將會被系統儲存,進行一定的分析、過濾,並建立索引,以便之後的查詢和檢索。對於聚焦爬蟲來說,這一過程所得到的分析結果還可能對以後的抓取過程給出反饋和指導。
3、通用網路爬蟲(全網爬蟲)
通用網路爬蟲又稱全網爬蟲, 爬行物件從一些種子URL擴充到整個Web,主要為門戶站點搜尋引擎和大型Web服務提供商採集資料。這類網路爬蟲的爬行範圍和數量巨大,對於爬行速度和儲存空間要求較高,對於爬行頁面順序要求相對較低,同時由於待重新整理頁面太多,通常採用並行工作方式,但需要較長時間才能重新整理一次頁面。雖然存在一定缺陷, 但通用網路爬蟲適用於為搜尋引擎搜尋廣泛的主題,有較強應用價值。
實際的網路爬蟲系統通常是幾種爬蟲技術相結合實現的。
四、網頁抓取策略
在爬蟲系統中,待抓取URL佇列是很重要的一部分。佇列中URL以什麼樣順序排列也是一個很重要的問題,因為這涉及先抓取哪個頁面,後抓取哪個頁面。
而決定這些URL排列順序的方法,稱之為抓取策略。
1、寬度優先搜尋:
在抓取過程中,在完成當前層次搜尋後,才進行下一層次搜尋。
優點:演算法設計和實現相對簡單。缺點:隨著抓取網頁增多,大量無關網頁將被下載並過濾,演算法效率將變低。
2、深度優先搜尋:
從起始網頁開始,選擇一個URL進入,分析這個網頁中的URL,一個連結一個連結地抓取下去,直到處理完一條路線之後再處理下一條URL中的路線。
例如,下圖中深度優先搜尋的遍歷方式時 A 到 B 到 D 到 E 到 F(ABDECF),而寬度優先搜尋的遍歷方式是 A B C D E F 。
相關文章
- Python 爬蟲實戰Python爬蟲
- [Python3網路爬蟲開發實戰] 分散式爬蟲原理Python爬蟲分散式
- python爬蟲實戰,爬蟲之路,永無止境Python爬蟲
- 圖靈樣書爬蟲 - Python 爬蟲實戰圖靈爬蟲Python
- python爬蟲實戰教程-Python爬蟲開發實戰教程(微課版)Python爬蟲
- 【Python爬蟲9】Python網路爬蟲例項實戰Python爬蟲
- python3網路爬蟲開發實戰_Python3 爬蟲實戰Python爬蟲
- Python 爬蟲實戰(2):股票資料定向爬蟲Python爬蟲
- Python網路爬蟲實戰Python爬蟲
- Python爬蟲實戰:爬取淘寶的商品資訊Python爬蟲
- python爬蟲-33個Python爬蟲專案實戰(推薦)Python爬蟲
- 爬蟲實戰爬蟲
- 不踩坑的Python爬蟲:Python爬蟲開發與專案實戰,從爬蟲入門 PythonPython爬蟲
- Python爬蟲,JS逆向之 webpack 打包站點原理與實戰Python爬蟲JSWeb
- Python爬蟲實戰之bilibiliPython爬蟲
- Python【爬蟲實戰】提取資料Python爬蟲
- 網路爬蟲——爬蟲實戰(一)爬蟲
- python3 爬蟲實戰:為爬蟲新增 GUI 影象介面Python爬蟲GUI
- python網路爬蟲應用_python網路爬蟲應用實戰Python爬蟲
- 爬蟲實戰scrapy爬蟲
- 《Python3網路爬蟲開發實戰》教程||爬蟲教程Python爬蟲
- Python爬蟲開發與專案實戰——基礎爬蟲分析Python爬蟲
- Python爬蟲開發與專案實戰 3: 初識爬蟲Python爬蟲
- Python爬蟲 ---scrapy框架初探及實戰Python爬蟲框架
- Python爬蟲實戰之叩富網Python爬蟲
- Python3爬蟲實戰(requests模組)Python爬蟲
- 2個月精通Python爬蟲——3大爬蟲框架+6場實戰+反爬蟲技巧+分散式爬蟲Python爬蟲框架分散式
- Python爬蟲實戰詳解:爬取圖片之家Python爬蟲
- Python3.X 爬蟲實戰(併發爬取)Python爬蟲
- [Python3網路爬蟲開發實戰] 2-爬蟲基礎 5-代理的基本原理Python爬蟲
- python爬蟲實戰:爬取西刺代理的代理ip(二)Python爬蟲
- 「docker實戰篇」python的docker爬蟲技術-pythonDockerPython爬蟲
- python爬蟲實操專案_Python爬蟲開發與專案實戰 1.6 小結Python爬蟲
- Python網路爬蟲實戰專案大全 32個Python爬蟲專案demoPython爬蟲
- [Python3網路爬蟲開發實戰] 2-爬蟲基礎 1-HTTP基本原理Python爬蟲HTTP
- Puppeteer爬蟲實戰(三)爬蟲
- 爬蟲技術實戰爬蟲
- 爬蟲利器 Puppeteer 實戰爬蟲