Python網(wǎng)絡(luò)爬蟲與數(shù)據(jù)采集
定 價(jià):59.8 元
- 作者:呂云翔 張揚(yáng)
- 出版時(shí)間:2021/8/1
- ISBN:9787115562081
- 出 版 社:人民郵電出版社
- 中圖法分類:TP311.561
- 頁(yè)碼:
- 紙張:膠版紙
- 版次:
- 開本:128開
本書的主旨是介紹如何結(jié)合Python進(jìn)行網(wǎng)絡(luò)爬蟲程序的開發(fā),從Python語(yǔ)言的基本特性入手,詳細(xì)介紹了Python爬蟲開發(fā)的各個(gè)方面,涉及包括HTTP、HTML、JavaScript、正則表達(dá)式、自然語(yǔ)言處理、數(shù)據(jù)科學(xué)等不同領(lǐng)域的內(nèi)容。全書共分為15章,包括了Python基礎(chǔ)知識(shí)、網(wǎng)站分析、網(wǎng)頁(yè)解析、Python文件讀寫、Python與數(shù)據(jù)庫(kù)、AJAX技術(shù)、模擬登錄、文本與數(shù)據(jù)分析、網(wǎng)站測(cè)試、Scrapy爬蟲框架、爬蟲性能等多個(gè)主題。內(nèi)容覆蓋網(wǎng)絡(luò)抓取與爬蟲編程中的主要知識(shí)和技術(shù),在重視理論基礎(chǔ)的前提下,從實(shí)用性和豐富度出發(fā),結(jié)合實(shí)例演示了爬蟲編寫的核心流程。
本書適合Python語(yǔ)言初學(xué)者、網(wǎng)絡(luò)爬蟲技術(shù)愛好者、數(shù)據(jù)分析從業(yè)人士以及高等院校計(jì)算機(jī)科學(xué)、軟件工程等相關(guān)專業(yè)的師生閱讀。
?內(nèi)容全面,結(jié)構(gòu)清晰:本書詳細(xì)介紹了網(wǎng)絡(luò)爬蟲技術(shù)的方方面面,討論了數(shù)據(jù)抓取、數(shù)據(jù)處理和數(shù)據(jù)分析的整個(gè)流程。全書結(jié)構(gòu)清晰,堅(jiān)持理論知識(shí)與實(shí)踐操作結(jié)合。
1.循序漸進(jìn),生動(dòng)簡(jiǎn)潔:從簡(jiǎn)單的Python程序示例開始,在網(wǎng)絡(luò)爬蟲的核心主題之下一步步深入,兼顧內(nèi)容的廣度與深度。在行文中,使用生動(dòng)簡(jiǎn)潔的闡述方式,力爭(zhēng)詳略得當(dāng)。
2.示例豐富,實(shí)戰(zhàn)性強(qiáng):網(wǎng)絡(luò)爬蟲是實(shí)踐性、操作性非常強(qiáng)的技術(shù),本書將提供豐富的代碼來(lái)作為讀者的參考,同時(shí)對(duì)必要的術(shù)語(yǔ)和代碼進(jìn)行解釋。從生活實(shí)際出發(fā),選取實(shí)用性、趣味性兼具的主題進(jìn)行網(wǎng)絡(luò)爬蟲實(shí)踐。
3.內(nèi)容新穎,不落窠臼:本書中程序代碼均采用的Python 3版本,并使用了目前主流的各種Python框架和庫(kù)來(lái)編寫程序,注重內(nèi)容的時(shí)效性。網(wǎng)絡(luò)爬蟲需要?jiǎng)邮謱?shí)踐才能真正理解,本書程度地保證了代碼與程序示例的易用性和易讀性。
呂云翔,比利時(shí)布魯塞爾大學(xué)應(yīng)用科學(xué)學(xué)院應(yīng)用信息技術(shù)專業(yè)碩士、經(jīng)濟(jì)學(xué)院工商管理專業(yè)碩士。具有多年的軟件開發(fā)、項(xiàng)目管理、計(jì)算機(jī)教學(xué)經(jīng)驗(yàn)。對(duì)IT行業(yè)具有較全面的認(rèn)識(shí)。2003至今任北航軟件學(xué)院副教授。研究領(lǐng)域包括:軟件工程 IT項(xiàng)目管理。
第1章 Python與網(wǎng)絡(luò)爬蟲 1
1.1 Python簡(jiǎn)介 1
1.1.1 什么是Python 1
1.1.2 Python的應(yīng)用現(xiàn)狀 2
1.2 Python的安裝與開發(fā)環(huán)境配置 3
1.2.1 在Windows操作系統(tǒng)上安裝 3
1.2.2 在Ubuntu和macOS操作系統(tǒng)上安裝 4
1.2.3 PyCharm的使用 5
1.2.4 Jupyter Notebook 9
1.3 Python基本語(yǔ)法 11
1.3.1 HelloWorld與數(shù)據(jù)類型 11
1.3.2 邏輯語(yǔ)句 17
1.3.3 Python中的函數(shù)與類 20
1.3.4 Python從0到1 21
1.4 互聯(lián)網(wǎng)與HTTP、HTML 22
1.4.1 互聯(lián)網(wǎng)與HTTP 22
1.4.2 HTML 23
1.5 Hello, Spider! 25
1.5.1 個(gè)爬蟲程序 25
1.5.2 思考我們的爬蟲 27
1.6 調(diào)研網(wǎng)站 27
1.6.1 網(wǎng)站的robots.txt與Sitemap 27
1.6.2 查看網(wǎng)站所用技術(shù) 30
1.6.3 查看網(wǎng)站所有者信息 31
1.6.4 使用開發(fā)者工具檢查網(wǎng)頁(yè) 32
1.7 本章小結(jié) 35
第2章 數(shù)據(jù)采集 36
2.1 從抓取開始 36
2.2 正則表達(dá)式 37
2.2.1 初見正則表達(dá)式 37
2.2.2 正則表達(dá)式的簡(jiǎn)單使用 38
2.3 BeautifulSoup 41
2.3.1 BeautifulSoup的安裝 41
2.3.2 BeautifulSoup的基本使用方法 43
2.4 XPath與lxml 46
2.4.1 XPath 46
2.4.2 lxml與XPath的使用方法 47
2.5 遍歷頁(yè)面 49
2.5.1 抓取下一個(gè)頁(yè)面 49
2.5.2 完成爬蟲 50
2.6 API 52
2.6.1 API簡(jiǎn)介 52
2.6.2 API使用示例 54
2.7 本章小結(jié) 57
第3章 文件與數(shù)據(jù)存儲(chǔ) 58
3.1 Python中的文件 58
3.1.1 基本的文件讀寫 58
3.1.2 序列化 60
3.2 字符串 61
3.3 Python與圖片 62
3.3.1 PIL與Pillow 62
3.3.2 OpenCV簡(jiǎn)介 64
3.4 CSV文件 65
3.4.1 CSV簡(jiǎn)介 65
3.4.2 CSV的讀寫 65
3.5 使用數(shù)據(jù)庫(kù) 67
3.5.1 使用MySQL 67
3.5.2 使用SQLite3 68
3.5.3 使用SQLAlchemy 70
3.5.4 使用Redis 71
3.6 其他類型的文檔 72
3.7 本章小結(jié) 77
第4章 JavaScript與動(dòng)態(tài)內(nèi)容 78
4.1 JavaScript與Ajax技術(shù) 78
4.1.1 JavaScript簡(jiǎn)介 78
4.1.2 Ajax技術(shù) 81
4.2 抓取Ajax數(shù)據(jù) 82
4.2.1 分析數(shù)據(jù) 82
4.2.2 提取數(shù)據(jù) 86
4.3 抓取動(dòng)態(tài)內(nèi)容 92
4.3.1 動(dòng)態(tài)渲染頁(yè)面 92
4.3.2 使用Selenium 92
4.3.3 PyV8與Splash 98
4.4 本章小結(jié) 101
第5章 表單與模擬登錄 102
5.1 表單 102
5.1.1 表單與POST 102
5.1.2 POST發(fā)送表單數(shù)據(jù) 104
5.2 Cookie 106
5.2.1 Cookie簡(jiǎn)介 106
5.2.2 在Python中使用Cookie 108
5.3 模擬登錄網(wǎng)站 110
5.3.1 分析網(wǎng)站 110
5.3.2 通過(guò)Cookie模擬登錄 111
5.4 驗(yàn)證碼 114
5.4.1 圖片驗(yàn)證碼 114
5.4.2 滑動(dòng)驗(yàn)證 116
5.5 本章小結(jié) 120
第6章 數(shù)據(jù)的進(jìn)一步處理 121
6.1 Python與文本分析 121
6.1.1 文本分析簡(jiǎn)介 121
6.1.2 jieba與SnowNLP 122
6.1.3 NLTK 125
6.1.4 文本分類與聚類 128
6.2 數(shù)據(jù)處理與科學(xué)計(jì)算 130
6.2.1 從MATLAB到Python 130
6.2.2 NumPy 131
6.2.3 pandas 135
6.2.4 Matplotlib 140
6.2.5 SciPy與SymPy 143
6.3 本章小結(jié) 144
第7章 更靈活的爬蟲 145
7.1 更靈活的爬蟲——以微信數(shù)據(jù)抓取為例 145
7.1.1 用Selenium抓取Web微信信息 145
7.1.2 基于Python的微信API工具 149
7.2 多樣的爬蟲 151
7.2.1 在BeautifulSoup和XPath之外 151
7.2.2 在線爬蟲應(yīng)用平臺(tái) 154
7.2.3 使用urllib 156
7.3 爬蟲的部署和管理 163
7.3.1 配置遠(yuǎn)程主機(jī) 163
7.3.2 編寫本地爬蟲 165
7.3.3 部署爬蟲 169
7.3.4 查看運(yùn)行結(jié)果 170
7.3.5 使用爬蟲管理框架 171
7.4 本章小結(jié) 174
第8章 模擬瀏覽器與網(wǎng)站測(cè)試 175
8.1 關(guān)于測(cè)試 175
8.1.1 測(cè)試簡(jiǎn)介 175
8.1.2 TDD 175
8.2 Python的單元測(cè)試 176
8.2.1 使用unittest 176
8.2.2 其他方法 178
8.3 使用Python爬蟲測(cè)試網(wǎng)站 179
8.4 使用Selenium測(cè)試 181
8.4.1 Selenium測(cè)試常用的網(wǎng)站交互 182
8.4.2 結(jié)合Selenium進(jìn)行單元測(cè)試 183
8.5 本章小結(jié) 184
第9章 更強(qiáng)大的爬蟲 185
9.1 爬蟲框架 185
9.1.1 Scrapy簡(jiǎn)介 185
9.1.2 Scrapy安裝與入門 186
9.1.3 編寫Scrapy爬蟲 189
9.1.4 其他爬蟲框架 191
9.2 網(wǎng)站反爬蟲 192
9.2.1 反爬蟲的策略 192
9.2.2 偽裝headers 193
9.2.3 使用代理IP地址 196
9.2.4 修改訪問頻率 199
9.3 多進(jìn)程與分布式 199
9.3.1 多進(jìn)程編程與爬蟲抓取 199
9.3.2 分布式爬蟲 201
9.4 本章小結(jié) 202
第10章 實(shí)戰(zhàn):購(gòu)物網(wǎng)站評(píng)論抓取 203
10.1 查看網(wǎng)絡(luò)數(shù)據(jù) 203
10.2 編寫爬蟲 206
10.3 本章小結(jié) 211
第11章 實(shí)戰(zhàn):爬蟲數(shù)據(jù)的深入分析與數(shù)據(jù)處理 212
11.1 明確目標(biāo)與數(shù)據(jù)準(zhǔn)備 212
11.1.1 明確目標(biāo) 212
11.1.2 數(shù)據(jù)準(zhǔn)備 212
11.1.3 工具選擇 213
11.2 初步分析 214
11.2.1 用戶角度分析 214
11.2.2 電影角度分析 217
11.3 電影推薦 220
11.4 本章小結(jié) 221
第12章 實(shí)戰(zhàn):抓取商品價(jià)格信息 222
12.1 抓取商品歷史價(jià)格 222
12.1.1 網(wǎng)頁(yè)分析 222
12.1.2 編寫爬蟲 225
12.1.3 運(yùn)行結(jié)果 230
12.2 本章小結(jié) 231
第13章 實(shí)戰(zhàn):模擬登錄爬蟲 232
13.1 模擬登錄POJ提交代碼并抓取評(píng)測(cè)結(jié)果 232
13.1.1 網(wǎng)頁(yè)請(qǐng)求分類 232
13.1.2 網(wǎng)頁(yè)分析 233
13.1.3 編寫爬蟲 235
13.1.4 運(yùn)行結(jié)果 238
13.2 本章小結(jié) 238
第14章 實(shí)戰(zhàn):音樂評(píng)論內(nèi)容的抓取與分析 239
14.1 jieba庫(kù) 239
14.2 wordcloud庫(kù) 239
14.3 抓取音樂的評(píng)論內(nèi)容 240
14.3.1 網(wǎng)頁(yè)分析 240
14.3.2 編寫爬蟲 241
14.3.3 運(yùn)行結(jié)果 243
14.4 本章小結(jié) 244
第15章 實(shí)戰(zhàn):異步爬蟲程序?qū)嵺` 245
15.1 項(xiàng)目分析 245
15.2 數(shù)據(jù)存儲(chǔ) 245
15.3 頁(yè)面下載器 247
15.3.1 網(wǎng)絡(luò)請(qǐng)求 248
15.3.2 頁(yè)面解碼 249
15.4 生產(chǎn)者—消費(fèi)者模型 250
15.4.1 調(diào)度器 250
15.4.2 消費(fèi)者 251
15.4.3 生產(chǎn)者 253
15.5 客戶端界面設(shè)計(jì) 254
15.5.1 首頁(yè) 255
15.5.2 搜索結(jié)果頁(yè) 255
15.5.3 新聞詳情頁(yè) 256
15.5.4 主窗口和運(yùn)行效果 257
15.6 本章小結(jié) 259