- 精通Scrapy網絡爬蟲
- 劉碩
- 687字
- 2020-11-28 14:59:36
1.1 網絡爬蟲是什么
網絡爬蟲是指在互聯網上自動爬取網站內容信息的程序,也被稱作網絡蜘蛛或網絡機器人。大型的爬蟲程序被廣泛應用于搜索引擎、數據挖掘等領域,個人用戶或企業也可以利用爬蟲收集對自身有價值的數據。舉一個簡單的例子,假設你在本地新開了一家以外賣生意為主的餐館,現在要給菜品定價,此時便可以開發一個爬蟲程序,在美團、餓了么、百度外賣這些外賣網站爬取大量其他餐館的菜品價格作為參考,以指導定價。
一個網絡爬蟲程序的基本執行流程可以總結為以下循環:

1.下載頁面
一個網頁的內容本質上就是一個HTML文本,爬取一個網頁內容之前,首先要根據網頁的URL下載網頁。
2.提取頁面中的數據
當一個網頁(HTML)下載完成后,對頁面中的內容進行分析,并提取出我們感興趣的數據,提取到的數據可以以多種形式保存起來,比如將數據以某種格式(CSV、JSON)寫入文件中,或存儲到數據庫(MySQL、MongoDB)中。
3.提取頁面中的鏈接
通常,我們想要獲取的數據并不只在一個頁面中,而是分布在多個頁面中,這些頁面彼此聯系,一個頁面中可能包含一個或多個到其他頁面的鏈接,提取完當前頁面中的數據后,還要把頁面中的某些鏈接也提取出來,然后對鏈接頁面進行爬取(循環1-3步驟)。
設計爬蟲程序時,還要考慮防止重復爬取相同頁面(URL去重)、網頁搜索策略(深度優先或廣度優先等)、爬蟲訪問邊界限定等一系列問題。
從頭開發一個爬蟲程序是一項煩瑣的工作,為了避免因制造輪子而消耗大量時間,在實際應用中我們可以選擇使用一些優秀的爬蟲框架,使用框架可以降低開發成本,提高程序質量,讓我們能夠專注于業務邏輯(爬取有價值的數據)。接下來,本書就帶你學習目前非常流行的開源爬蟲框架Scrapy。
推薦閱讀
- Power Up Your PowToon Studio Project
- Docker進階與實戰
- Learning Flask Framework
- Python Geospatial Development(Second Edition)
- 編寫高質量代碼:改善C程序代碼的125個建議
- 游戲程序設計教程
- WordPress Plugin Development Cookbook(Second Edition)
- Learning Zurb Foundation
- 飛槳PaddlePaddle深度學習實戰
- Learning R for Geospatial Analysis
- Microsoft Azure Storage Essentials
- Python項目實戰從入門到精通
- C++20高級編程
- Cocos2d-x by Example:Beginner's Guide(Second Edition)
- Hands-On Dependency Injection in Go