本書從實戰(zhàn)角度系統(tǒng)論述了Python 爬蟲技術的核心知識,并通過大量的真實項目幫助讀者深入掌握Python 爬蟲技術及其實現(xiàn)。本書提供了大量實戰(zhàn)案例,演繹采用各種技術編寫Python 爬蟲的方式。讀者可以任意組合使用這些技術,完成非常復雜的爬蟲應用。本書共20 章,分為五篇。第一篇:基礎知識(第1~2 章),主要包括Python 編程環(huán)境的搭建、IDE 的安裝和使用、HTTP 的基礎知識、網頁基礎(HTML、CSS、JavaScript)、爬蟲的基本原理、Session、Cookie。第二篇:網絡庫(第3~5 章),主要包括網絡庫urllib、urllib3 和requests 的核心使用方法,例如,發(fā)送HTTP 請求、處理超時、設置HTTP 請求頭、處理中文字符、搭建和使用代理、解析鏈接、Robots 協(xié)議等。第三篇:解析庫(第6~9 章),主要包括3 個常用解析庫(lxml、Beautiful Soup 和pyquery)的使用方法,同時介紹了多種用于分析HTML 代碼的技術,例如,正則表達式、XPath、CSS 選擇器、方法選擇器等。第四篇:數(shù)據(jù)存儲(第10~11 章),主要包括Python 中數(shù)據(jù)存儲的解決方案,如文件存儲和SQLite 數(shù)據(jù)庫。第五篇:爬蟲高級應用(第12~20 章),主要包括Python 爬蟲的一些高級技術,如抓取異步數(shù)據(jù)、Selenium、Splash、抓取移動App 數(shù)據(jù)、Appium、多線程爬蟲、爬蟲框架Scrapy、通過OpenCV 技術識別驗證碼;最后給出一個綜合的實戰(zhàn)案例,該案例綜合了Python 爬蟲、數(shù)據(jù)存儲、PyQt、多線程、數(shù)據(jù)可視化、Web 等多種技術實現(xiàn)一個可視化爬蟲。
大家都知道Python語言現(xiàn)在非;鸨。但Python語言就和英語一樣,如果只會Python,就相當于只能用英語進行日常會話,而真正的英語高手是可以充當專業(yè)領域(如IT、金融、數(shù)學等)翻譯的。Python語言也一樣,僅僅學習Python語言是不夠的,要想找到更好的工作,或想得到更高的薪水,需要學會用Python語言實現(xiàn)某一領域的應用。
現(xiàn)在Python語言應用的領域比較多,人工智能就是其中之一,人工智能不僅涉及Python語言本身的技術,還涉及數(shù)學領域的知識,雖然比較火爆,但不是短時間內可以掌握的。然而,在眾多的Python語言應用領域中,有一個領域與人工智能的火爆程度相當,但卻不像人工智能入門那樣難,這就是爬蟲。
那么為什么爬蟲領域如此火爆呢?其實爬蟲的基本功能就是從網上下載各種類型的數(shù)據(jù)(如HTML、圖像文件等)?刹灰∏七@些下載的數(shù)據(jù),因為這些數(shù)據(jù)將成為很多偉大應用的數(shù)據(jù)源。例如,著名的Google搜索引擎,每天都會有數(shù)以億計的查詢請求,而搜索引擎為這些請求返回的數(shù)據(jù),都來源于強大的爬蟲。編寫搜索引擎的第一步就是通過爬蟲抓取整個互聯(lián)網的數(shù)據(jù),然后將這些數(shù)據(jù)保存到本地(以特定的數(shù)據(jù)格式),接下來就是對這些數(shù)據(jù)進行分析整理,然后才可以通過搜索引擎進行查詢。雖然搜索引擎的實現(xiàn)技術非常多也非常復雜,但爬蟲是最重要的,如果沒有爬蟲搜集數(shù)據(jù),再偉大的分析程序也毫無用武之地。
除了搜索引擎,人工智能中的重要分支深度學習也需要爬蟲抓取的數(shù)據(jù)來訓練模型。例如,要想訓練一個識別金字塔的深度學習模型,就需要大量與金字塔相關的圖片進行訓練。最簡單的方式就是使用百度或Google搜索金字塔圖片,然后用爬蟲抓取這些圖片到本地。這是利用了搜索引擎已經通過關鍵字分類的特性,并且重新利用了這些分類的圖片。
通過這些例子可以了解到,學習爬蟲是進入更高端領域的鑰匙,所以Python爬蟲將成為第一項需要掌握的熱門技術。
盡管爬蟲的基本功能是下載文件,但一個復雜的爬蟲應用可不僅僅涉及網絡技術。將數(shù)據(jù)下載后,還需要對數(shù)據(jù)進行分析,提取出需要的信息,以及進行數(shù)據(jù)可視化,甚至需要一個基于UI的可視化爬蟲。所以與爬蟲有關的技術還是很多的。
由于Python爬蟲涉及的技術很多,學習資料過于分散,因此,筆者覺得很有必要編寫一本全面介紹Python爬蟲的實戰(zhàn)類圖書,分享筆者對Python爬蟲及相關技術的理解和經驗,幫助同行和感興趣的朋友快速入門Python爬蟲,并利用Python語言編寫各種復雜的爬蟲應用。筆者希望本書能起到拋磚引玉的作用,使讀者對Python爬蟲及其相關技術產生濃厚的興趣,并能成功進入Python爬蟲領域。
本書使用Python 3編寫,并在書中探討了關于Python爬蟲的核心技術。本書分為五篇,共20章,涵蓋了Python爬蟲的基礎知識、常用網絡庫、常用分析庫、數(shù)據(jù)存儲技術、異步數(shù)據(jù)處理、可見即可爬技術、抓取移動App、Scrapy、用OpenCV識別驗證碼等內容。本書還提供了大量的實例和項目,以便讓讀者可以身臨其境地體驗Python爬蟲的魅力。
限于篇幅,本書無法涉及Python爬蟲及相關技術的方方面面,只能盡筆者所能,與大家分享盡可能多的知識和經驗,相信通過對本書的學習,讀者可以擁有進一步深入學習的能力,達到Python爬蟲高手的程度也只是時間問題。
最后,筆者希望本書能為Python爬蟲及相關技術的普及,為廣大從業(yè)者提供有價值的實踐經驗從而幫助他們快速上手貢獻綿薄之力。
作者
2023年10月