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