Python網(wǎng)絡(luò)爬蟲(chóng)技術(shù)
定 價(jià):39.8 元
- 作者:江吉彬 張良均
- 出版時(shí)間:2019/4/1
- ISBN:9787115505064
- 出 版 社:人民郵電出版社
- 中圖法分類(lèi):TP311.561
- 頁(yè)碼:165
- 紙張:
- 版次:01
- 開(kāi)本:16開(kāi)
本書(shū)以任務(wù)為導(dǎo)向,較為全面地介紹了不同場(chǎng)景下Python爬取網(wǎng)絡(luò)數(shù)據(jù)的方法,包括靜態(tài)網(wǎng)頁(yè)、動(dòng)態(tài)網(wǎng)頁(yè)、登錄后才能訪問(wèn)的網(wǎng)頁(yè)、PC客戶(hù)端、App等場(chǎng)景。全書(shū)共7章,第1章介紹了爬蟲(chóng)與反爬蟲(chóng)的基本概念,以及Python爬蟲(chóng)環(huán)境的配置,第2章介紹了爬取過(guò)程中涉及的網(wǎng)頁(yè)前端基礎(chǔ),第3章介紹了在靜態(tài)網(wǎng)頁(yè)中爬取數(shù)據(jù)的過(guò)程,第4章介紹了在動(dòng)態(tài)網(wǎng)頁(yè)中爬取數(shù)據(jù)的過(guò)程,第5章介紹了對(duì)登錄后才能訪問(wèn)的網(wǎng)頁(yè)進(jìn)行模擬登錄的方法,第6章介紹了爬取PC客戶(hù)端、App的數(shù)據(jù)的方法,第7章介紹了使用Scrapy爬蟲(chóng)框架爬取數(shù)據(jù)的過(guò)程。本書(shū)所有章節(jié)都包含了實(shí)訓(xùn)與課后習(xí)題,通過(guò)練習(xí)和操作實(shí)戰(zhàn),可幫助讀者鞏固所學(xué)的內(nèi)容。
本書(shū)采用了以任務(wù)為導(dǎo)向的教學(xué)模式,按照解決實(shí)際任務(wù)的工作流程路線(xiàn),逐步展開(kāi)介紹相關(guān)的理論知識(shí)點(diǎn),推導(dǎo)生成可行的解決方案,最后落實(shí)在任務(wù)實(shí)現(xiàn)環(huán)節(jié)。
全書(shū)大部分章節(jié)緊扣任務(wù)需求展開(kāi),不堆積知識(shí)點(diǎn),著重于解決問(wèn)題時(shí)思路的啟發(fā)與方案的實(shí)施。通過(guò)從任務(wù)需求到實(shí)現(xiàn)這一完整工作流程的體驗(yàn),幫助讀者真正理解與消化 Python網(wǎng)絡(luò)爬蟲(chóng)技術(shù)。
書(shū)中案例全部源于企業(yè)真實(shí)項(xiàng)目,可操作性強(qiáng),引導(dǎo)讀者融會(huì)貫通,并提供源代碼等相關(guān)學(xué)習(xí)資源,幫助讀者快速掌握大數(shù)據(jù)相關(guān)技能。
張良均,信息系統(tǒng)項(xiàng)目管理師,泰迪杯全國(guó)大學(xué)生數(shù)據(jù)挖掘競(jìng)賽(www.tipdm.org)發(fā)起人。華南師范大學(xué)、廣東工業(yè)大學(xué)兼職教授,廣東省工業(yè)與應(yīng)用數(shù)學(xué)學(xué)會(huì)理事。兼有大型高科技企業(yè)和高校的工作經(jīng)歷,主要從事大數(shù)據(jù)挖掘及其應(yīng)用的策劃、研發(fā)及咨詢(xún)培訓(xùn)。全國(guó)計(jì)算機(jī)技術(shù)與軟件專(zhuān)業(yè)技術(shù)資格(水平)考試?yán)^續(xù)教育和CDA數(shù)據(jù)分析師培訓(xùn)講師。發(fā)表數(shù)據(jù)挖掘相關(guān)論文數(shù)20余篇,已取得國(guó)家發(fā)明專(zhuān)利12項(xiàng),主編《Hadoop大數(shù)據(jù)分析與挖掘?qū)崙?zhàn)》《Python數(shù)據(jù)分析與挖掘?qū)崙?zhàn)》《R語(yǔ)言數(shù)據(jù)分析與挖掘?qū)崙?zhàn)》等多本暢銷(xiāo)圖書(shū),主持并完成科技項(xiàng)目9項(xiàng)。獲得SAS、SPSS數(shù)據(jù)挖掘認(rèn)證及Hadoop開(kāi)發(fā)工程師證書(shū),具有電力、電信、銀行、制造企業(yè)、電子商務(wù)和電子政務(wù)的項(xiàng)目經(jīng)驗(yàn)和行業(yè)背景。
第 1章 Python爬蟲(chóng)環(huán)境與爬蟲(chóng)簡(jiǎn)介 1
任務(wù)1.1 認(rèn)識(shí)爬蟲(chóng) 1
1.1.1 爬蟲(chóng)的概念 1
1.1.2 爬蟲(chóng)的原理 2
1.1.3 爬蟲(chóng)的合法性與robot.txt協(xié)議 4
任務(wù)1.2 認(rèn)識(shí)反爬蟲(chóng) 4
1.2.1 網(wǎng)站反爬蟲(chóng)的目的與手段 4
1.2.2 爬取策略制定 5
任務(wù)1.3 配置Python爬蟲(chóng)環(huán)境 6
1.3.1 Python爬蟲(chóng)相關(guān)庫(kù)介紹與配置 7
1.3.2 配置MySQL數(shù)據(jù)庫(kù) 7
1.3.3 配置MongoDB數(shù)據(jù)庫(kù) 16
小結(jié) 20
實(shí)訓(xùn) Python爬蟲(chóng)環(huán)境配置 21
課后習(xí)題 21
第 2章 網(wǎng)頁(yè)前端基礎(chǔ) 23
任務(wù)2.1 認(rèn)識(shí)Python網(wǎng)絡(luò)編程 23
2.1.1 了解Python網(wǎng)絡(luò)編程Socket庫(kù) 24
2.1.2 使用Socket庫(kù)進(jìn)行TCP編程 26
2.1.3 使用Socket庫(kù)進(jìn)行UDP編程 28
任務(wù)2.2 認(rèn)識(shí)HTTP 29
2.2.1 熟悉HTTP請(qǐng)求方法與過(guò)程 30
2.2.2 熟悉常見(jiàn)HTTP狀態(tài)碼 32
2.2.3 熟悉HTTP頭部信息 33
2.2.4 熟悉Cookie 39
小結(jié) 41
實(shí)訓(xùn) 使用Socket庫(kù)連接百度首頁(yè) 41
課后習(xí)題 42
第3章 簡(jiǎn)單靜態(tài)網(wǎng)頁(yè)爬取 43
任務(wù)3.1 實(shí)現(xiàn)HTTP請(qǐng)求 43
3.1.1 使用urllib 3庫(kù)實(shí)現(xiàn) 44
3.1.2 使用Requests庫(kù)實(shí)現(xiàn) 47
任務(wù)3.2 解析網(wǎng)頁(yè) 52
3.2.1 使用Chrome開(kāi)發(fā)者工具查看網(wǎng)頁(yè) 52
3.2.2 使用正則表達(dá)式解析網(wǎng)頁(yè) 58
3.2.3 使用Xpath解析網(wǎng)頁(yè) 61
3.2.4 使用Beautiful Soup庫(kù)解析網(wǎng)頁(yè) 66
任務(wù)3.3 數(shù)據(jù)存儲(chǔ) 74
3.3.1 將數(shù)據(jù)存儲(chǔ)為JSON文件 74
3.3.2 將數(shù)據(jù)存儲(chǔ)到MySQL數(shù)據(jù)庫(kù) 75
小結(jié) 78
實(shí)訓(xùn) 79
實(shí)訓(xùn)1 生成GET請(qǐng)求并獲取指定網(wǎng)頁(yè)內(nèi)容 79
實(shí)訓(xùn)2 搜索目標(biāo)節(jié)點(diǎn)并提取文本內(nèi)容 79
實(shí)訓(xùn)3 在數(shù)據(jù)庫(kù)中建立新表并導(dǎo)入數(shù)據(jù) 80
課后習(xí)題 80
第4章 常規(guī)動(dòng)態(tài)網(wǎng)頁(yè)爬取 82
任務(wù)4.1 逆向分析爬取動(dòng)態(tài)網(wǎng)頁(yè) 82
4.1.1 了解靜態(tài)網(wǎng)頁(yè)和動(dòng)態(tài)網(wǎng)頁(yè)的區(qū)別 82
4.1.2 逆向分析爬取動(dòng)態(tài)網(wǎng)頁(yè) 85
任務(wù)4.2 使用Selenium庫(kù)爬取動(dòng)態(tài)網(wǎng)頁(yè) 88
4.2.1 安裝Selenium庫(kù)及下載瀏覽器補(bǔ)丁 88
4.2.2 打開(kāi)瀏覽對(duì)象并訪問(wèn)頁(yè)面 89
4.2.3 頁(yè)面等待 90
4.2.4 頁(yè)面操作 91
4.2.5 元素選取 93
4.2.6 預(yù)期條件 96
任務(wù)4.3 存儲(chǔ)數(shù)據(jù)至MongoDB數(shù)據(jù)庫(kù) 98
4.3.1 了解MongoDB數(shù)據(jù)庫(kù)和MySQL數(shù)據(jù)庫(kù)的區(qū)別 99
4.3.2 將數(shù)據(jù)存儲(chǔ)到MongoDB數(shù)據(jù)庫(kù) 100
小結(jié) 103
實(shí)訓(xùn) 103
實(shí)訓(xùn)1 爬取網(wǎng)頁(yè)“http://www.ptpress. com.cn”的推薦圖書(shū)信息 103
實(shí)訓(xùn)2 爬取某網(wǎng)頁(yè)的Java圖書(shū)信息 104
實(shí)訓(xùn)3 將數(shù)據(jù)存儲(chǔ)到MongoDB數(shù)據(jù)庫(kù)中 104
課后習(xí)題 104
第5章 模擬登錄 106
任務(wù)5.1 使用表單登錄方法實(shí)現(xiàn)模擬登錄 106
5.1.1 查找提交入口 106
5.1.2 查找并獲取需要提交的表單數(shù)據(jù) 108
5.1.3 使用POST請(qǐng)求方法登錄 112
任務(wù)5.2 使用Cookie登錄方法實(shí)現(xiàn)模擬登錄 114
5.2.1 使用瀏覽器Cookie登錄 115
5.2.2 基于表單登錄的Cookie登錄 117
小結(jié) 119
實(shí)訓(xùn) 119
實(shí)訓(xùn)1 使用表單登錄方法模擬登錄數(shù)睿思論壇 119
實(shí)訓(xùn)2 使用瀏覽器Cookie模擬登錄數(shù)睿思論壇 120
實(shí)訓(xùn)3 基于表單登錄后的Cookie模擬登錄數(shù)睿思論壇 120
課后習(xí)題 120
第6章 終端協(xié)議分析 122
任務(wù)6.1 分析PC客戶(hù)端抓包 122
6.1.1 了解HTTP Analyzer工具 122
6.1.2 爬取千千音樂(lè)PC客戶(hù)端數(shù)據(jù) 125
任務(wù)6.2 分析App抓包 126
6.2.1 了解Fiddler工具 127
6.2.2 分析人民日?qǐng)?bào)App 130
小結(jié) 132
實(shí)訓(xùn) 133
實(shí)訓(xùn)1 抓取千千音樂(lè)PC客戶(hù)端的推薦歌曲信息 133
實(shí)訓(xùn)2 爬取人民日?qǐng)?bào)App的旅游模塊信息 134
課后習(xí)題 134
第7章 Scrapy爬蟲(chóng) 135
任務(wù)7.1 認(rèn)識(shí)Scarpy 135
7.1.1 了解Scrapy爬蟲(chóng)的框架 135
7.1.2 熟悉Scrapy的常用命令 137
任務(wù)7.2 通過(guò)Scrapy爬取文本信息 138
7.2.1 創(chuàng)建Scrapy爬蟲(chóng)項(xiàng)目 138
7.2.2 修改items/pipelines腳本 140
7.2.3 編寫(xiě)spider腳本 143
7.2.4 修改settings腳本 148
任務(wù)7.3 定制中間件 152
7.3.1 定制下載器中間件 152
7.3.2 定制Spider中間件 156
小結(jié) 157
實(shí)訓(xùn) 157
實(shí)訓(xùn)1 爬取“http://www.tipdm.org”的所有新聞動(dòng)態(tài) 157
實(shí)訓(xùn)2 定制BdRaceNews爬蟲(chóng)項(xiàng)目的中間件 158
課后習(xí)題 158
附錄A 160
附錄B 163
參考文獻(xiàn) 166