Python 網(wǎng)絡(luò)爬蟲從入門到精通
定 價:79 元
叢書名:《Python開發(fā)從入門到精通系列》
- 作者:呂云翔 張揚(yáng) 韓延剛 等
- 出版時間:2019/5/1
- ISBN:9787111625933
- 出 版 社:機(jī)械工業(yè)出版社
- 中圖法分類:TP311.561
- 頁碼:
- 紙張:膠版紙
- 版次:
- 開本:16開
《Python 網(wǎng)絡(luò)爬蟲從入門到精通》的主旨是介紹如何結(jié)合Python進(jìn)行網(wǎng)絡(luò)爬蟲程序的開發(fā),從Python語言的基本特性入手,詳細(xì)介紹了Python網(wǎng)絡(luò)爬蟲開發(fā)的各個方面,涉及HTTP、HTML、JavaScript、正則表達(dá)式、自然語言處理、數(shù)據(jù)科學(xué)等不同領(lǐng)域的內(nèi)容。全書共15章,包括Python基礎(chǔ)知識、網(wǎng)站分析、網(wǎng)頁解析、Python文件讀寫、Python與數(shù)據(jù)庫、AJAX技術(shù)、模擬登錄、文本與數(shù)據(jù)分析、網(wǎng)站測試、Scrapy爬蟲框架、爬蟲性能等多個主題。本書內(nèi)容覆蓋網(wǎng)絡(luò)抓取與爬蟲編程中的主要知識和技術(shù),在重視理論基礎(chǔ)的前提下,從實(shí)用性和豐富性出發(fā),結(jié)合實(shí)例演示了爬蟲編寫的核心流程。
《Python 網(wǎng)絡(luò)爬蟲從入門到精通》適合Python語言初學(xué)者、網(wǎng)絡(luò)爬蟲技術(shù)愛好者、數(shù)據(jù)分析從業(yè)人士以及高等院校計算機(jī)科學(xué)、軟件工程等相關(guān)專業(yè)的師生閱讀。
1. 內(nèi)容全面,結(jié)構(gòu)清晰:本書詳細(xì)介紹了網(wǎng)絡(luò)爬蟲技術(shù)的方方面面,討論了數(shù)據(jù)抓取、數(shù)據(jù)處理和數(shù)據(jù)分析的整個流程。全書結(jié)構(gòu)清晰,堅持理論知識與實(shí)踐操作結(jié)合。
2. 循序漸進(jìn),生動簡潔:從*簡單的Python程序示例開始,在網(wǎng)絡(luò)爬蟲的核心主題之下一步步深入,兼顧內(nèi)容的廣度與深度。在行文中,使用生動簡潔的闡述方式,力爭詳略得當(dāng)。
3. 示例豐富,實(shí)戰(zhàn)性強(qiáng):網(wǎng)絡(luò)爬蟲是實(shí)踐性、操作性非常強(qiáng)的技術(shù),本書將提供豐富的代碼來作為讀者的參考,同時對必要的術(shù)語和代碼進(jìn)行解釋。從生活實(shí)際出發(fā),選取實(shí)用性、趣味性兼具的主題進(jìn)行網(wǎng)絡(luò)爬蟲實(shí)踐。
網(wǎng)絡(luò)爬蟲又叫網(wǎng)絡(luò)蜘蛛,是指按照某種規(guī)則在網(wǎng)絡(luò)上爬取所需內(nèi)容的腳本程序。它們被廣泛應(yīng)用于互聯(lián)網(wǎng)搜索引擎及各種網(wǎng)站的開發(fā)中,同時也是大數(shù)據(jù)和數(shù)據(jù)分析領(lǐng)域中的重要角色。眾所周知,每個網(wǎng)頁通常包含其他網(wǎng)頁的入口,網(wǎng)絡(luò)爬蟲則通過一個網(wǎng)址依次進(jìn)入其他網(wǎng)址獲取所需內(nèi)容。爬蟲可以按一定邏輯大批量采集目標(biāo)頁面內(nèi)容,并對數(shù)據(jù)進(jìn)行進(jìn)一步處理,人們借此能夠更好、更快地獲取并使用他們感興趣的信息,從而方便地完成很多有價值的工作。
Python是一種解釋型、面向?qū)ο、動態(tài)數(shù)據(jù)類型的高級程序設(shè)計語言,其語法簡潔、功能強(qiáng)大,在眾多高級語言中擁有十分出色的編寫效率,同時還擁有活躍的開源社區(qū)和海量程序庫,十分適合用于網(wǎng)絡(luò)內(nèi)容的抓取和處理。本書以Python語言為基礎(chǔ),由淺入深地探討網(wǎng)絡(luò)爬蟲技術(shù),同時,通過具體的程序編寫和實(shí)踐來幫助讀者了解和學(xué)習(xí)Python網(wǎng)絡(luò)爬蟲。
《Python 網(wǎng)絡(luò)爬蟲從入門到精通》共15章,分4部分講解,其中第1~3章為基礎(chǔ)部分,第4~6章為進(jìn)階部分,第7~9章為高級部分,第10~15章為實(shí)踐部分。第1、2章介紹了Python語言和爬蟲編寫的基礎(chǔ)知識;第3章討論了Python中文件和數(shù)據(jù)的存儲,涉及數(shù)據(jù)庫的相關(guān)知識;第4、5章的內(nèi)容針對相對復(fù)雜一些的爬蟲抓取任務(wù),主要著眼于動態(tài)內(nèi)容和表單登錄等方面;第6章探討對抓取到的原始數(shù)據(jù)的深入處理和分析;第7~9章旨在從不同視角討論爬蟲程序,基于爬蟲介紹了多個不同主題的內(nèi)容;第10~15章通過一些實(shí)際的例子深入討論了爬蟲編程的理論知識。
《Python 網(wǎng)絡(luò)爬蟲從入門到精通》的主要特點(diǎn)有:
? 內(nèi)容全面,結(jié)構(gòu)清晰。本書詳細(xì)介紹了網(wǎng)絡(luò)爬蟲技術(shù)的方方面面,討論了數(shù)據(jù)抓取、數(shù)據(jù)處理和數(shù)據(jù)分析的整個流程。全書結(jié)構(gòu)清晰,堅持理論知識與實(shí)踐操作相結(jié)合。
? 循序漸進(jìn),生動簡潔。本書從最簡單的Python程序示例開始,圍繞網(wǎng)絡(luò)爬蟲這個主題一步步深入講解,兼顧內(nèi)容的廣度與深度。本書行文使用生動簡潔的闡述方式,力爭詳略得當(dāng)。
? 示例豐富,實(shí)戰(zhàn)性強(qiáng)。網(wǎng)絡(luò)爬蟲是實(shí)踐性、操作性非常強(qiáng)的技術(shù),本書提供豐富的代碼供讀者參考,同時對必要的術(shù)語和代碼進(jìn)行解釋。從實(shí)際應(yīng)用出發(fā),選取實(shí)用性、趣味性兼具的主題進(jìn)行網(wǎng)絡(luò)爬蟲實(shí)踐。
? 內(nèi)容新穎,不落窠臼。本書的程序代碼均基于最新的Python 3版本編寫,并使用了目前主流的各種Python框架和庫,注重內(nèi)容的時效性。網(wǎng)絡(luò)爬蟲需要動手實(shí)踐才能真正理解,本書最大程度地保證了代碼與程序示例的易用性和易讀性。
《Python 網(wǎng)絡(luò)爬蟲從入門到精通》主要由呂云翔、張揚(yáng)、韓延剛編寫,另外,曾洪立參與了部分內(nèi)容的編寫及資料整理工作。
由于作者水平有限,不足之處在所難免,歡迎廣大讀者聯(lián)系交流(郵箱:yunxianglu@ hotmail.com)。
第1章 Python與網(wǎng)絡(luò)爬蟲1
1.1 Python語言1
1.1.1 什么是Python1
1.1.2 Python的應(yīng)用現(xiàn)狀2
1.2 Python的安裝與開發(fā)環(huán)境配置3
1.2.1 在Windows上安裝3
1.2.2 在Ubuntu和Mac OS上安裝4
1.2.3 PyCharm的使用5
1.2.4 Jupyter Notebook9
1.3 Python基本語法12
1.3.1 HelloWorld與數(shù)據(jù)類型12
1.3.2 邏輯語句19
1.3.3 Python中的函數(shù)與類22
1.3.4 Python從0到125
1.4 互聯(lián)網(wǎng)、HTTP與HTML25
1.4.1 互聯(lián)網(wǎng)與HTTP25
1.4.2 HTML27
1.5 Hello, Spider!29
1.5.1 第一個爬蟲程序29
1.5.2 對爬蟲的思考31
1.6 調(diào)研網(wǎng)站33
1.6.1 網(wǎng)站的robots.txt與Sitemap33
1.6.2 查看網(wǎng)站所用技術(shù)36
1.6.3 查看網(wǎng)站所有者信息37
1.6.4 使用開發(fā)者工具檢查網(wǎng)頁39
1.7 本章小結(jié)42
第2章 數(shù)據(jù)采集43
2.1 從抓取開始43
2.2 正則表達(dá)式44
2.2.1 初見正則表達(dá)式44
2.2.2 正則表達(dá)式的簡單使用46
2.3 BeautifulSoup49
2.3.1 安裝與上手49
2.3.2 BeautifulSoup的基本使用52
2.4 XPath與lxml55
2.4.1 XPath55
2.4.2 lxml與XPath的使用57
2.5 遍歷頁面59
2.5.1 抓取下一個頁面59
2.5.2 完成爬蟲60
2.6 使用API63
2.6.1 API簡介63
2.6.2 API使用示例65
2.7 本章小結(jié)68
第3章 文件與數(shù)據(jù)存儲69
3.1 Python中的文件69
3.1.1 基本的文件讀寫69
3.1.2 序列化72
3.2 字符串72
3.3 Python與圖片74
3.3.1 PIL與Pillow74
3.3.2 Python與OpenCV簡介76
3.4 CSV文件77
3.4.1 CSV簡介77
3.4.2 CSV的讀寫77
3.5 使用數(shù)據(jù)庫79
3.5.1 使用MySQL80
3.5.2 使用SQLite381
3.5.3 使用SQLAlchemy83
3.5.4 使用Redis85
3.6 其他類型的文檔86
3.7 本章小結(jié)90
第4章 JavaScript與動態(tài)內(nèi)容91
4.1 JavaScript與AJAX技術(shù)91
4.1.1 JavaScript語言91
4.1.2 AJAX95
4.2 抓取AJAX數(shù)據(jù)96
4.2.1 分析數(shù)據(jù)96
4.2.2 數(shù)據(jù)提取100
4.3 抓取動態(tài)內(nèi)容107
4.3.1 動態(tài)渲染頁面107
4.3.2 使用Selenium107
4.3.3 PyV8與Splash114
4.4 本章小結(jié)118
第5章 表單與模擬登錄119
5.1 表單119
5.1.1 表單與POST119
5.1.2 POST發(fā)送表單數(shù)據(jù)121
5.2 Cookie124
5.2.1 什么是Cookie124
5.2.2 在Python中使用Cookie125
5.3 模擬登錄網(wǎng)站128
5.3.1 分析網(wǎng)站128
5.3.2 通過Cookie模擬登錄129
5.4 驗(yàn)證碼133
5.4.1 圖片驗(yàn)證碼133
5.4.2 滑動驗(yàn)證134
5.5 本章小結(jié)139
第6章 數(shù)據(jù)的進(jìn)一步處理140
6.1 Python與文本分析140
6.1.1 什么是文本分析140
6.1.2 jieba與SnowNLP141
6.1.3 NLTK145
6.1.4 文本分類與聚類149
6.2 數(shù)據(jù)處理與科學(xué)計算150
6.2.1 從MATLAB到Python150
6.2.2 NumPy151
6.2.3 Pandas156
6.2.4 Matplotlib163
6.2.5 SciPy與SymPy167
6.3 本章小結(jié)167
第7章 更靈活的爬蟲168
7.1 更靈活的爬蟲以微信數(shù)據(jù)抓取為例168
7.1.1 用Selenium抓取Web微信信息168
7.1.2 基于Python的微信API工具172
7.2 更多樣的爬蟲175
7.2.1 在BeautifulSoup和XPath之外175
7.2.2 在線爬蟲應(yīng)用平臺179
7.2.3 使用urllib181
7.3 爬蟲的部署和管理190
7.3.1 配置遠(yuǎn)程主機(jī)190
7.3.2 編寫本地爬蟲192
7.3.3 部署爬蟲198
7.3.4 查看運(yùn)行結(jié)果199
7.3.5 使用爬蟲管理框架200
7.4 本章小結(jié)203
第8章 瀏覽器模擬與網(wǎng)站測試204
8.1 關(guān)于測試204
8.1.1 什么是測試204
8.1.2 什么是TDD205
8.2 Python的單元測試205
8.2.1 使用unittest205
8.2.2 其他方法208
8.3 使用Python爬蟲測試網(wǎng)站209
8.4 使用Selenium測試212
8.4.1 Selenium測試常用的網(wǎng)站交互212
8.4.2 結(jié)合Selenium進(jìn)行單元測試214
8.5 本章小結(jié)215
第9章 更強(qiáng)大的爬蟲216
9.1 爬蟲框架216
9.1.1 Scrapy是什么216
9.1.2 Scrapy安裝與入門218
9.1.3 編寫Scrapy爬蟲221
9.1.4 其他爬蟲框架223
9.2 網(wǎng)站反爬蟲224
9.2.1 反爬蟲的策略224
9.2.2 偽裝headers225
9.2.3 使用代理228
9.2.4 訪問頻率232
9.3 多進(jìn)程與分布式233
9.3.1 多進(jìn)程編程與爬蟲抓取233
9.3.2 分布式爬蟲235
9.4 本章小結(jié)235
第10章 爬蟲實(shí)踐:火車票余票實(shí)時提醒236
10.1 程序設(shè)計236
10.1.1 分析網(wǎng)頁236
10.1.2 理解返回的JSON格式數(shù)據(jù)的意義238
10.1.3 微信消息推送238
10.1.4 運(yùn)行并查看微信消息243
10.2 本章小結(jié)244
第11章 爬蟲實(shí)踐:爬取二手房數(shù)據(jù)并繪制熱力圖245
11.1 數(shù)據(jù)抓取245
11.1.1 分析網(wǎng)頁245
11.1.2 地址轉(zhuǎn)換成經(jīng)緯度247
11.1.3 編寫代碼248
11.1.4 數(shù)據(jù)下載結(jié)果252
11.2 繪制熱力圖252
11.3 本章小結(jié)259
第12章 爬