Python爬蟲(chóng)項(xiàng)目教程(微課版)
定 價(jià):59.8 元
叢書(shū)名:名校名師精品系列教材
- 作者:黃銳軍編
- 出版時(shí)間:2021/11/1
- ISBN:9787115569998
- 出 版 社:人民郵電出版社
- 中圖法分類(lèi):TP311.561
- 頁(yè)碼:260
- 紙張:膠版紙
- 版次:1
- 開(kāi)本:16開(kāi)
《Python爬蟲(chóng)項(xiàng)目教程(微課版)》以Python語(yǔ)言為基礎(chǔ),介紹了爬蟲(chóng)的基礎(chǔ)知識(shí)。
《Python爬蟲(chóng)項(xiàng)目教程(微課版)》包括6個(gè)實(shí)戰(zhàn)項(xiàng)目,分別為爬取外匯網(wǎng)站數(shù)據(jù)、爬取名言網(wǎng)站數(shù)據(jù)、爬取電影網(wǎng)站數(shù)據(jù)、爬取圖書(shū)網(wǎng)站數(shù)據(jù)、爬取商城網(wǎng)站數(shù)據(jù)、爬取景區(qū)網(wǎng)站數(shù)據(jù)。
《Python爬蟲(chóng)項(xiàng)目教程(微課版)》通過(guò)這些項(xiàng)目講解了Python的Web訪問(wèn)技術(shù)、BeautifulSoup的數(shù)據(jù)分析與提取技術(shù)、深度優(yōu)先與廣度優(yōu)先順序爬取技術(shù)、多線程網(wǎng)頁(yè)爬取技術(shù)、scrapy分布式爬取框架技術(shù)、selenium爬蟲(chóng)程序技術(shù)、AWS中的DynamoDB數(shù)據(jù)庫(kù)的NoSQL存儲(chǔ)技術(shù)等。
《Python爬蟲(chóng)項(xiàng)目教程(微課版)》每個(gè)項(xiàng)目都遵循由淺入深的學(xué)習(xí)規(guī)律,采取理論與實(shí)踐相結(jié)合的方式來(lái)引導(dǎo)讀者完成實(shí)戰(zhàn)。
《Python爬蟲(chóng)項(xiàng)目教程(微課版)》可作為計(jì)算機(jī)軟件技術(shù)專(zhuān)業(yè)及其相關(guān)專(zhuān)業(yè)的程序設(shè)計(jì)課程教材。
適讀人群 :本書(shū)可作為計(jì)算機(jī)軟件技術(shù)專(zhuān)業(yè)及其相關(guān)專(zhuān)業(yè)的程序設(shè)計(jì)教材。
緊扣學(xué)生為中心的主線,在教材中融入課程思政元素,培養(yǎng)愛(ài)黨愛(ài)國(guó)、愛(ài)崗敬業(yè)、高素質(zhì)高技能的軟件人才。
使用項(xiàng)目驅(qū)動(dòng)的形式編寫(xiě),每個(gè)項(xiàng)目涵蓋了不同的知識(shí)與技能點(diǎn),各個(gè)項(xiàng)目按“任
務(wù)目標(biāo)”“知識(shí)內(nèi)容”“案例實(shí)踐”的結(jié)構(gòu)編寫(xiě)。
名校名師20余年授課經(jīng)驗(yàn)集結(jié)成書(shū)
爬蟲(chóng)程序指能自動(dòng)從相關(guān)網(wǎng)頁(yè)中搜索與提取所需數(shù)據(jù)的程序,提取與存儲(chǔ)這些數(shù)據(jù)是進(jìn)行數(shù)據(jù)分析的前提與關(guān)鍵。Python語(yǔ)言因其簡(jiǎn)單、易讀、可擴(kuò)展的特性,在編寫(xiě)爬蟲(chóng)程序方面有特別的優(yōu)勢(shì)。尤其是業(yè)界有用Python編寫(xiě)的各種各樣的爬蟲(chóng)程序框架供學(xué)習(xí)者參考,使得Python爬蟲(chóng)程序的編寫(xiě)更加簡(jiǎn)單、高效。
本書(shū)包括6個(gè)項(xiàng)目。項(xiàng)目1基于爬取外匯網(wǎng)站數(shù)據(jù),講解Python的Web訪問(wèn)技術(shù)及正則表達(dá)式匹配字符串方法。項(xiàng)目2基于爬取名言網(wǎng)站數(shù)據(jù),講解BeautifulSoup的數(shù)據(jù)分析與提取技術(shù)。項(xiàng)目3基于爬取電影網(wǎng)站數(shù)據(jù),講解爬取多個(gè)網(wǎng)頁(yè)數(shù)據(jù)的方法,重點(diǎn)講解網(wǎng)頁(yè)的深度優(yōu)先與廣度優(yōu)先順序爬取路徑的構(gòu)造方法與多線程網(wǎng)頁(yè)爬取技術(shù)。項(xiàng)目4基于爬取圖書(shū)網(wǎng)站數(shù)據(jù),講解目前功能強(qiáng)大的分布式爬取框架scrapy的程序技術(shù)。項(xiàng)目5基于爬取商城網(wǎng)站數(shù)據(jù),講解selenium爬蟲(chóng)程序技術(shù)。項(xiàng)目6基于爬取景區(qū)網(wǎng)站數(shù)據(jù),講解AWS中的DynamoDB數(shù)據(jù)庫(kù)的NoSQL存儲(chǔ)技術(shù)。每個(gè)項(xiàng)目都遵循由淺人深的學(xué)習(xí)規(guī)律,理論與實(shí)踐相結(jié)合,引導(dǎo)讀者完成實(shí)戰(zhàn)。
學(xué)習(xí)是一個(gè)循序漸進(jìn)的過(guò)程,實(shí)際的網(wǎng)站結(jié)構(gòu)比較復(fù)雜,對(duì)初學(xué)者來(lái)說(shuō),一開(kāi)始就編寫(xiě)爬蟲(chóng)程序去爬取一個(gè)實(shí)際網(wǎng)站的數(shù)據(jù)是比較困難的。因此本書(shū)的每個(gè)項(xiàng)目都是先指導(dǎo)讀者搭建一個(gè)本地模擬網(wǎng)站,再編寫(xiě)爬蟲(chóng)程序來(lái)爬取本地模擬網(wǎng)站的數(shù)據(jù),從而幫助讀者掌握爬蟲(chóng)程序的編寫(xiě)技術(shù)。這樣做的好處是使學(xué)習(xí)內(nèi)容變得簡(jiǎn)單、易學(xué),讀者可以先把主要精力放在爬蟲(chóng)程序的編寫(xiě)上,而非放在分析網(wǎng)站結(jié)構(gòu)上,等有了一定的編程基礎(chǔ)再去爬取實(shí)際網(wǎng)站的數(shù)據(jù)就容易多了。
對(duì)于本書(shū),建議分為54學(xué)時(shí)實(shí)施教學(xué)。
由于編者知識(shí)水平有限,書(shū)中難免出現(xiàn)疏漏與不妥之處,歡迎讀者批評(píng)指正。
黃銳軍, 深圳信息職業(yè)技術(shù)學(xué)院軟件學(xué)院副教授,研究生學(xué)歷。主要從事計(jì)算機(jī)軟件技術(shù)課程教學(xué),有二十多年的職業(yè)教學(xué)經(jīng)歷。從事軟件開(kāi)發(fā),先后為深圳市職業(yè)技能鑒定中心開(kāi)發(fā)了序列應(yīng)用軟件。
項(xiàng)目1 爬取外匯網(wǎng)站數(shù)據(jù) 1
1.1 項(xiàng)目任務(wù) 1
1.2 搭建爬蟲(chóng)程序開(kāi)發(fā)環(huán)境 1
1.2.1 理解爬蟲(chóng)程序 2
1.2.2 搭建開(kāi)發(fā)環(huán)境 2
1.3 使用Flask創(chuàng)建Web網(wǎng)站 3
1.3.1 安裝Flask框架 3
1.3.2 創(chuàng)建模擬外匯網(wǎng)站 4
1.3.3 編寫(xiě)客戶(hù)端程序并獲取網(wǎng)站的HTML代碼 5
1.4 使用GET方法訪問(wèn)Web網(wǎng)站 7
1.4.1 客戶(hù)端使用GET方法發(fā)送數(shù)據(jù) 7
1.4.2 服務(wù)器端使用GET方法獲取數(shù)據(jù) 8
1.5 使用POST方法訪問(wèn)Web網(wǎng)站 9
1.5.1 客戶(hù)端使用POST方法發(fā)送數(shù)據(jù) 9
1.5.2 服務(wù)器端使用POST方法獲取數(shù)據(jù) 10
1.5.3 混合使用GET與POST方法 11
1.6 使用正則表達(dá)式匹配數(shù)據(jù) 13
1.6.1 使用正則表達(dá)式匹配字符串 14
1.6.2 使用正則表達(dá)式爬取數(shù)據(jù) 17
1.7 綜合項(xiàng)目 爬取模擬外匯網(wǎng)站數(shù)據(jù) 18
1.7.1 創(chuàng)建模擬外匯網(wǎng)站 18
1.7.2 解析網(wǎng)站的HTML代碼 19
1.7.3 設(shè)計(jì)存儲(chǔ)數(shù)據(jù)庫(kù) 19
1.7.4 編寫(xiě)爬蟲(chóng)程序 20
1.7.5 執(zhí)行爬蟲(chóng)程序 22
1.8 實(shí)戰(zhàn)項(xiàng)目 爬取實(shí)際外匯網(wǎng)站數(shù)據(jù) 22
1.8.1 解析網(wǎng)站的HTML代碼 22
1.8.2 爬取網(wǎng)站外匯匯率數(shù)據(jù) 24
1.8.3 設(shè)計(jì)存儲(chǔ)數(shù)據(jù)庫(kù) 25
1.8.4 編寫(xiě)爬蟲(chóng)程序 26
1.8.5 執(zhí)行爬蟲(chóng)程序 28
項(xiàng)目總結(jié) 29
練習(xí)1 29
項(xiàng)目2 爬取名言網(wǎng)站數(shù)據(jù) 30
2.1 項(xiàng)目任務(wù) 30
2.2 使用BeautifulSoup裝載HTML文檔 30
2.2.1 創(chuàng)建模擬名言網(wǎng)站 31
2.2.2 安裝BeautifulSoup程序包 32
2.2.3 裝載HTML文檔 32
2.3 使用BeautifulSoup查找HTML元素 34
2.3.1 使用find()函數(shù)查找 34
2.3.2 查找元素屬性與文本 37
2.3.3 使用find_all()函數(shù)查找 38
2.3.4 使用高級(jí)查找 40
2.4 使用BeautifulSoup遍歷文檔元素 42
2.4.1 獲取元素節(jié)點(diǎn)的父節(jié)點(diǎn) 42
2.4.2 獲取元素節(jié)點(diǎn)的直接子節(jié)點(diǎn) 43
2.4.3 獲取元素節(jié)點(diǎn)的所有子孫節(jié)點(diǎn) 44
2.4.4 獲取元素節(jié)點(diǎn)的兄弟節(jié)點(diǎn) 45
2.5 BeautifulSoup支持使用CSS語(yǔ)法進(jìn)行查找 46
2.5.1 使用CSS語(yǔ)法查找 47
2.5.2 使用屬性的語(yǔ)法規(guī)則 48
2.5.3 使用select()查找子孫節(jié)點(diǎn) 49
2.5.4 使用select()查找直接子節(jié)點(diǎn) 49
2.5.5 使用select()查找兄弟節(jié)點(diǎn) 49
2.5.6 使用select_one()查找單一元素 50
2.6 綜合項(xiàng)目 爬取模擬名言網(wǎng)站數(shù)據(jù) 51
2.6.1 創(chuàng)建模擬名言網(wǎng)站 51
2.6.2 爬取名言數(shù)據(jù) 51
2.6.3 設(shè)計(jì)存儲(chǔ)數(shù)據(jù)庫(kù) 52
2.6.4 編寫(xiě)爬蟲(chóng)程序 52
2.6.5 執(zhí)行爬蟲(chóng)程序 54
2.7 實(shí)戰(zhàn)項(xiàng)目 爬取實(shí)際名言網(wǎng)站
數(shù)據(jù) 55
2.7.1 解析網(wǎng)站的HTML代碼 55
2.7.2 爬取全部頁(yè)面的數(shù)據(jù) 56
2.7.3 編寫(xiě)爬蟲(chóng)程序 57
2.7.4 執(zhí)行爬蟲(chóng)程序 59
項(xiàng)目總結(jié) 60
練習(xí)2 60
項(xiàng)目3 爬取電影網(wǎng)站數(shù)據(jù) 63
3.1 項(xiàng)目任務(wù) 63
3.2 簡(jiǎn)單爬取網(wǎng)站數(shù)據(jù) 64
3.2.1 創(chuàng)建模擬電影網(wǎng)站 65
3.2.2 爬取網(wǎng)站數(shù)據(jù) 66
3.2.3 編寫(xiě)爬蟲(chóng)程序 68
3.2.4 執(zhí)行爬蟲(chóng)程序 69
3.3 遞歸爬取網(wǎng)站數(shù)據(jù) 69
3.3.1 創(chuàng)建模擬電影網(wǎng)站 69
3.3.2 解析電影網(wǎng)站結(jié)構(gòu) 72
3.3.3 遞歸爬取電影網(wǎng)站數(shù)據(jù) 72
3.4 深度優(yōu)先爬取網(wǎng)站數(shù)據(jù) 73
3.4.1 深度優(yōu)先法 73
3.4.2 深度優(yōu)先爬蟲(chóng)程序 74
3.5 廣度優(yōu)先爬取網(wǎng)站數(shù)據(jù) 75
3.5.1 廣度優(yōu)先法 75
3.5.2 廣度優(yōu)先爬蟲(chóng)程序 76
3.6 爬取翻頁(yè)網(wǎng)站數(shù)據(jù) 77
3.6.1 使用Flask模板參數(shù) 77
3.6.2 創(chuàng)建翻頁(yè)電影網(wǎng)站 81
3.6.3 編寫(xiě)爬蟲(chóng)程序 84
3.6.4 執(zhí)行爬蟲(chóng)程序 85
3.7 爬取網(wǎng)站全部圖像 86
3.7.1 創(chuàng)建模擬電影網(wǎng)站 86
3.7.2 使用單線程程序爬取圖像 88
3.7.3 使用Python的多線程 90
3.7.4 使用多線程程序爬取圖像 93
3.8 綜合項(xiàng)目 爬取模擬電影網(wǎng)站數(shù)據(jù) 95
3.8.1 創(chuàng)建模擬電影網(wǎng)站 95
3.8.2 設(shè)計(jì)存儲(chǔ)數(shù)據(jù)庫(kù) 98
3.8.3 編寫(xiě)爬蟲(chóng)程序 99
3.8.4 執(zhí)行爬蟲(chóng)程序 102
3.9 實(shí)戰(zhàn)項(xiàng)目 爬取實(shí)際電影網(wǎng)站數(shù)據(jù) 103
3.9.1 解析電影網(wǎng)站的HTML代碼 103
3.9.2 爬取電影網(wǎng)站數(shù)據(jù) 105
3.9.3 編寫(xiě)爬蟲(chóng)程序 107
3.9.4 執(zhí)行爬蟲(chóng)程序 111
項(xiàng)目總結(jié) 112
練習(xí)3 112
項(xiàng)目4 爬取圖書(shū)網(wǎng)站數(shù)據(jù) 113
4.1 項(xiàng)目任務(wù) 113
4.2 使用scrapy創(chuàng)建爬蟲(chóng)程序 115
4.2.1 創(chuàng)建網(wǎng)站服務(wù)器程序 115
4.2.2 安裝scrapy框架 115
4.2.3 scrapy項(xiàng)目的創(chuàng)建 115
4.2.4 入口函數(shù)與入口地址 118
4.2.5 Python的yield語(yǔ)句 118
4.3 使用BeautifulSoup爬取數(shù)據(jù) 119
4.3.1 創(chuàng)建模擬圖書(shū)網(wǎng)站 119
4.3.2 解析網(wǎng)站的HTML代碼 120
4.3.3 爬取圖書(shū)圖像 121
4.3.4 編寫(xiě)爬蟲(chóng)程序 122
4.3.5 執(zhí)行爬蟲(chóng)程序 123
4.4 使用XPath查找元素 123
4.4.1 scrapy的XPath簡(jiǎn)介 124
4.4.2 使用XPath查找HTML元素 125
4.4.3 使用XPath與BeautifulSoup 134
4.5 爬取關(guān)聯(lián)網(wǎng)頁(yè)數(shù)據(jù) 135
4.5.1 創(chuàng)建模擬圖書(shū)網(wǎng)站 135
4.5.2 程序爬取網(wǎng)頁(yè)的順序 137
4.5.3 理解scrapy分布式 139
4.6 使用XPath爬取數(shù)據(jù) 140
4.6.1 創(chuàng)建模擬圖書(shū)網(wǎng)站 140
4.6.2 解析網(wǎng)站的HTML代碼 142
4.6.3 爬取圖書(shū)圖像 143
4.6.4 設(shè)計(jì)數(shù)據(jù)庫(kù)存儲(chǔ) 144
4.6.5 編寫(xiě)爬蟲(chóng)程序 144
4.6.6 執(zhí)行爬蟲(chóng)程序 146
4.7 使用管道存儲(chǔ)數(shù)據(jù) 147
4.7.1 創(chuàng)建模擬圖書(shū)網(wǎng)站 147
4.7.2 編寫(xiě)數(shù)據(jù)字段類(lèi) 149
4.7.3 編寫(xiě)爬蟲(chóng)程序類(lèi) 150
4.7.4 編寫(xiě)數(shù)據(jù)管道類(lèi) 151
4.7.5 設(shè)置scrapy的配置文件 153
4.7.6 執(zhí)行爬蟲(chóng)程序 153
4.8 綜合項(xiàng)目 爬取模擬圖書(shū)網(wǎng)站數(shù)據(jù) 154
4.8.1 創(chuàng)建模擬圖書(shū)網(wǎng)站 154
4.8.2 編寫(xiě)數(shù)據(jù)字段類(lèi) 157
4.8.3 編寫(xiě)數(shù)據(jù)管道類(lèi) 157
4.8.4 編寫(xiě)爬蟲(chóng)程序類(lèi) 158
4.8.5 設(shè)置scrapy的配置文件 160
4.8.6 執(zhí)行爬蟲(chóng)程序 160
4.9 實(shí)戰(zhàn)項(xiàng)目 爬取實(shí)際圖書(shū)網(wǎng)站數(shù)據(jù) 161
4.9.1 解析網(wǎng)站的HTML代碼 161
4.9.2 爬取網(wǎng)站圖書(shū)數(shù)據(jù) 164
4.9.3 實(shí)現(xiàn)自動(dòng)翻頁(yè) 165
4.9.4 編寫(xiě)爬蟲(chóng)程序 167
4.9.5 執(zhí)行爬蟲(chóng)程序并查看爬取結(jié)果 170
項(xiàng)目總結(jié) 172
練習(xí)4 172
項(xiàng)目5 爬取商城網(wǎng)站數(shù)據(jù) 174
5.1 項(xiàng)目任務(wù) 174
5.2 使用selenium編寫(xiě)爬蟲(chóng)程序 176
5.2.1 JavaScript程序控制網(wǎng)頁(yè) 176
5.2.2 普通爬蟲(chóng)程序的問(wèn)題 177
5.2.3 安裝selenium與Chrome驅(qū)動(dòng)程序 178
5.2.4 編寫(xiě)selenium爬蟲(chóng)程序 178
5.3 使用selenium查找HTML元素 180
5.3.1 創(chuàng)建模擬商城網(wǎng)站 180
5.3.2 使用XPath查找元素 182
5.3.3 查找元素的文本與屬性 182
5.3.4 使用id值查找元素 184
5.3.5 使用name屬性值查找元素 184
5.3.6 使用CSS查找元素 184
5.3.7 使用tagName查找元素 185
5.3.8 使用文本查找超鏈接 186
5.3.9 使用class值查找元素 186
5.4 使用selenium實(shí)現(xiàn)用戶(hù)登錄 187
5.4.1 創(chuàng)建用戶(hù)登錄網(wǎng)站 187
5.4.2 使用元素動(dòng)作 188
5.4.3 編寫(xiě)爬蟲(chóng)程序 189
5.4.4 執(zhí)行JavaScript程序 191
5.5 使用selenium爬取Ajax網(wǎng)頁(yè)數(shù)據(jù) 192
5.5.1 創(chuàng)建Ajax網(wǎng)站 192
5.5.2 理解selenium爬蟲(chóng)程序 194
5.5.3 編寫(xiě)爬蟲(chóng)程序 197
5.5.4 執(zhí)行爬蟲(chóng)程序 198
5.6 使用selenium等待HTML元素 198
5.6.1 創(chuàng)建延遲模擬網(wǎng)站 199
5.6.2 編寫(xiě)爬蟲(chóng)程序 200
5.6.3 selenium強(qiáng)制等待 200
5.6.4 selenium隱式等待 201
5.6.5 selenium循環(huán)等待與顯式等待 202
5.6.6 selenium顯式等待形式 204
5.7 綜合項(xiàng)目 爬取模擬商城網(wǎng)站數(shù)據(jù) 205
5.7.1 創(chuàng)建模擬商城網(wǎng)站 205
5.7.2 爬取網(wǎng)站數(shù)據(jù)并實(shí)現(xiàn)網(wǎng)頁(yè)翻頁(yè) 209
5.7.3 設(shè)計(jì)數(shù)據(jù)存儲(chǔ)與圖像存儲(chǔ) 210
5.7.4 編寫(xiě)爬蟲(chóng)程序 211
5.7.5 執(zhí)行爬蟲(chóng)程序 214
5.8 實(shí)戰(zhàn)項(xiàng)目 爬取實(shí)際商城網(wǎng)站數(shù)據(jù) 215
5.8.1 解析網(wǎng)站的HTML代碼 215
5.8.2 爬取網(wǎng)站數(shù)據(jù) 218
5.8.3 實(shí)現(xiàn)網(wǎng)頁(yè)翻頁(yè) 220
5.8.4 編寫(xiě)爬蟲(chóng)程序 222
5.8.5 執(zhí)行爬蟲(chóng)程序 226
項(xiàng)目總結(jié) 228
練習(xí)5 228
項(xiàng)目6 爬取景區(qū)網(wǎng)站數(shù)據(jù) 230
6.1 項(xiàng)目任務(wù) 230
6.2 使用DynamoDB存儲(chǔ)模擬景區(qū)網(wǎng)站數(shù)據(jù) 231
6.2.1 創(chuàng)建模擬景區(qū)網(wǎng)站 231
6.2.2 爬取網(wǎng)站數(shù)據(jù) 233
6.2.3 編寫(xiě)爬蟲(chóng)程序 234
6.2.4 執(zhí)行爬蟲(chóng)程序 235
6.2.5 DynamoDB簡(jiǎn)介 235
6.3 登錄AWS數(shù)據(jù)庫(kù) 236
6.3.1 登錄AWS 236
6.3.2 創(chuàng)建數(shù)據(jù)庫(kù)表 238
6.4 DynamoDB數(shù)據(jù)庫(kù)操作 240
6.4.1 存儲(chǔ)數(shù)據(jù) 240
6.4.2 讀取數(shù)據(jù) 241
6.4.3 修改數(shù)據(jù) 242
6.4.4 刪除數(shù)據(jù) 243
6.4.5 掃描數(shù)據(jù) 243
6.4.6 刪除數(shù)據(jù)庫(kù)表 244
6.5 綜合項(xiàng)目 爬取模擬景區(qū)網(wǎng)站數(shù)據(jù) 245
6.5.1 創(chuàng)建模擬景區(qū)網(wǎng)站 245
6.5.2 編寫(xiě)爬蟲(chóng)程序 245
6.5.3 執(zhí)行爬蟲(chóng)程序 248
6.6 實(shí)戰(zhàn)項(xiàng)目 爬取實(shí)際景區(qū)網(wǎng)站數(shù)據(jù) 249
6.6.1 解析網(wǎng)站的HTML代碼 250
6.6.2 爬取網(wǎng)站景區(qū)數(shù)據(jù) 252
6.6.3 爬取全部頁(yè)面的數(shù)據(jù) 254
6.6.4 設(shè)計(jì)存儲(chǔ)數(shù)據(jù)庫(kù) 255
6.6.5 編寫(xiě)爬蟲(chóng)程序 255
6.6.6 執(zhí)行爬蟲(chóng)程序 259
項(xiàng)目總結(jié) 260
練習(xí)6 260