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