注冊 | 登錄讀書好,好讀書,讀好書!
讀書網(wǎng)-DuShu.com
當前位置: 首頁出版圖書科學技術計算機/網(wǎng)絡數(shù)據(jù)庫Python數(shù)據(jù)爬取技術與實戰(zhàn)手冊

Python數(shù)據(jù)爬取技術與實戰(zhàn)手冊

Python數(shù)據(jù)爬取技術與實戰(zhàn)手冊

定 價:¥59.80

作 者: 郭卡,戴亮 著
出版社: 中國鐵道出版社
叢編項:
標 簽: 暫缺

ISBN: 9787113245221 出版時間: 2018-08-01 包裝: 平裝
開本: 16開 頁數(shù): 316 字數(shù):  

內(nèi)容簡介

  海量數(shù)據(jù)的產(chǎn)生和大數(shù)據(jù)的高價值利用,讓數(shù)據(jù)爬取變得日益重要。本書為讀者介紹了如何使用Python編寫網(wǎng)絡爬蟲批量采集互聯(lián)網(wǎng)數(shù)據(jù),如何處理與保存采集到的信息,以及如何從眾多紛亂的數(shù)據(jù)中提取到真正有用的信息。本書末尾介紹了幾種常用的數(shù)據(jù)可視化工具。讓讀者能夠從頭到尾完整地完成網(wǎng)絡數(shù)據(jù)的采集與分析項目。 本書理論與實例并重,既能夠幫助數(shù)據(jù)從業(yè)者快速提升工作效率,又可以幫助大數(shù)據(jù)愛好者用網(wǎng)絡爬蟲方便生活。

作者簡介

  郭卡,遼寧師范大學碩士畢業(yè),安徽外國語學院計算機教師,多年從事一線計算機教學及計算機等級培訓工作,擅長計算機網(wǎng)絡技術和教育學類數(shù)據(jù)統(tǒng)計分析技術,曾在中文核心期刊發(fā)表多篇技術論文。 戴亮,中南大學碩士畢業(yè),數(shù)據(jù)挖掘從業(yè)者;在網(wǎng)絡爬蟲、數(shù)據(jù)分析、機器學習等領域有豐富的實戰(zhàn)經(jīng)驗,在簡書中貢獻了許多高質(zhì)量的技術文章,深受讀者好評。

圖書目錄

第1章 最佳拍檔:網(wǎng)絡爬蟲與Python語言
1.1 什么是網(wǎng)絡爬蟲 1
1.1.1 網(wǎng)絡爬蟲的定義 2
1.1.2 網(wǎng)絡爬蟲的工作流程 2
1.1.3 網(wǎng)絡爬蟲的分類 3
1.1.4 為什么選擇用Python編寫網(wǎng)絡爬蟲 4
1.1.5 編寫爬蟲的注意事項 4
1.2 Python環(huán)境配置 5
1.2.1 Python的安裝 5
1.2.2 Python第三方庫的安裝 6
【示例1-1】使用包管理器安裝科學計算庫numpy 6
【示例1-2】源代碼方式安裝xlrd庫(使用setup.py文件) 7
【示例1-3】源代碼方式安裝xlrd庫(使用whl文件) 8
1.2.3 Python開發(fā)工具的選擇 8
【示例1-4】將文本編輯器配置成Python開發(fā)工具(以Notepad++為例) 12
1.3 Python基本語法 13
1.3.1 Python書寫規(guī)則 13
1.3.2 Python基本數(shù)據(jù)類型 18
【示例1-5】以列表a = ['a','a','b','c','d','d','e']為例講解List的基本操作 21
【示例1-6】以列表a = [1,2,3,4,5,6,7,8]為例講解數(shù)據(jù)型列表的屬性分析 23
【示例1-7】以字典a為例,講解字典的基本操作 25
1.3.3 Python獨有數(shù)據(jù)生成方式:推導式 29
1.3.4 函數(shù) 30
【示例1-8】局部變量與全局變量重名的運行結果與解決方案 31
1.3.5 條件與循環(huán) 34
1.3.6 類與對象 35
【示例1-9】請輸出學生信息中某學生的班級、姓名和總分數(shù) 35
1.3.7 Python 2代碼轉(zhuǎn)為Python 3代碼 36
【示例1-10】以文件test.py為例,介紹Python 2代碼到Python 3代碼的轉(zhuǎn)化 37
第2章 應知應會:網(wǎng)絡爬蟲基本知識
2.1 網(wǎng)頁的構成 38
2.1.1 HTML基本知識 39
2.1.2 網(wǎng)頁中各元素的排布 46
【示例2-1】以新浪博客文本為例,學習各類元素的排布規(guī)則 46
2.2 正則表達式 48
2.2.1 正則表達式簡介 48
2.2.2 Python語言中的正則表達式 49
【示例2-2】正則表達式應用中,當匹配次數(shù)達到10萬時,預先編譯對正則表達式性能的提升 51
2.2.3 綜合實例:正則表達式的實際應用——在二手房網(wǎng)站中提取有用信息 52
2.3 漢字編碼問題 54
2.3.1 常見編碼簡介 54
2.3.2 常用編程環(huán)境的默認編碼 55
2.3.3 網(wǎng)頁編碼 56
2.3.4 編碼轉(zhuǎn)換 56
2.4 網(wǎng)絡爬蟲的行為準則 57
2.4.1 遵循Robots協(xié)議 57
2.4.2 網(wǎng)絡爬蟲的合法性 59
第3章 靜態(tài)網(wǎng)頁爬取
3.1 Python常用網(wǎng)絡庫 61
3.1.1 urllib庫 62
【示例3-1】從眾多代理IP中選取可用的IP 63
【示例3-2】百度搜索“Python”url演示Parse模塊應用 66
3.1.2 綜合實例:批量獲取高清壁紙 68
3.1.3 requests庫 71
【示例3-3】用requests實現(xiàn)豆瓣網(wǎng)站模擬登錄 72
3.1.4 綜合實例:爬取歷史天氣數(shù)據(jù)預測天氣變化 74
3.2 網(wǎng)頁解析工具 77
3.2.1 更易上手:BeautifulSoup 77
【示例3-4】解析HTML文檔(以豆瓣讀書《解憂雜貨店》為例) 78
3.2.2 更快速度:lxml 81
3.2.3 BeautifulSoup與lxml對比 82
【示例3-5】爬取豆瓣讀書中近5年出版的評分7分以上的漫畫 82
【示例3-6】BeautifulSoup和lxml解析同樣網(wǎng)頁速度測試(基于網(wǎng)易新聞首頁) 85
3.2.4 綜合實例:在前程無憂中搜索并抓取不同編程語言崗位的平均收入 85
第4章 動態(tài)網(wǎng)頁爬取
4.1 AJAX技術 89
4.1.1 獲取AJAX請求 90
4.1.2 綜合實例:抓取簡書百萬用戶個人主頁 91
4.2 Selenium操作瀏覽器 97
4.2.1 驅(qū)動常規(guī)瀏覽器 97
4.2.2 驅(qū)動無界面瀏覽器 100
4.2.3 綜合實例:模擬登錄新浪微博并下載短視頻 101
4.3 爬取移動端數(shù)據(jù) 103
4.3.1 Fiddler工具配置 103
4.3.2 綜合實例:Fiddle實際應用——爬取大角蟲漫畫信息 105
第5章 統(tǒng)一架構與規(guī)范:網(wǎng)絡爬蟲框架
5.1 最流行的網(wǎng)絡爬蟲框架:Scrapy 111
5.1.1 安裝須知與錯誤解決方案 111
5.1.2 Scrapy的組成與功能 112
5.2 綜合實例:使用Scrapy構建觀影指南 118
5.2.1 網(wǎng)絡爬蟲準備工作 119
5.2.2 編寫Spider 121
5.2.3 處理Item 123
5.2.4 運行網(wǎng)絡爬蟲 124
5.2.5 數(shù)據(jù)分析 124
5.3 更易上手的網(wǎng)絡爬蟲框架:Pyspider 126
5.3.1 創(chuàng)建Pyspider項目 127
【示例5-1】利用Pyspider創(chuàng)建抓取煎蛋網(wǎng)項目并測試代碼 127
5.3.2 運行Pyspider項目 129
第6章 反爬蟲應對策略
6.1 設置Headers信息 132
6.1.1 User-Agent 133
6.1.2 Cookie 136
6.2 建立IP代理池 138
6.2.1 建立IP代理池的思路 138
6.2.2 建立IP代理池的步驟 138
6.3 驗證碼識別 140
6.3.1 識別簡單的驗證碼 141
【示例6-1】通過pytesseract庫識別8個簡單的驗證碼,并逐步提升準確率 141
6.3.2 識別漢字驗證碼 146
6.3.3 人工識別復雜驗證碼 146
6.3.4 利用Cookie繞過驗證碼 149
第7章 提升網(wǎng)絡爬蟲效率
7.1 網(wǎng)絡爬蟲策略 152
7.1.1 廣度優(yōu)先策略 153
7.1.2 深度優(yōu)先策略 153
7.1.3 按網(wǎng)頁權重決定爬取優(yōu)先級 154
7.1.4 綜合實例:深度優(yōu)先和廣度優(yōu)先策略效率對比
(抓取慕課網(wǎng)實戰(zhàn)課程地址) 154
7.2 提升網(wǎng)絡爬蟲的速度 158
7.2.1 多線程 159
【示例7-1】使用4個線程同步抓取慕課網(wǎng)實戰(zhàn)課程地址(基于深度優(yōu)先策略) 159
7.2.2 多進程 161
7.2.3 分布式爬取 162
7.2.4 綜合實例:利用現(xiàn)有知識搭建分布式爬蟲(爬取百度貼吧中的帖子) 162
第8章 更專業(yè)的爬取數(shù)據(jù)存儲與處理:數(shù)據(jù)庫
8.1 受歡迎的關系型數(shù)據(jù)庫:MySQL 170
8.1.1 MySQL簡介 170
8.1.2 MySQL環(huán)境配置 171
8.1.3 MySQL的查詢語法 174
【示例8-1】使用MySQL查詢語句從數(shù)據(jù)表Countries中選取面積大于10000km2的歐洲國家 177
8.1.4 使用pymysql連接MySQL數(shù)據(jù)庫 178
8.1.5 導入與導出數(shù)據(jù) 179
8.2 應對海量非結構化數(shù)據(jù):MongoDB數(shù)據(jù)庫 180
8.2.1 MongoDB 簡介 180
8.2.2 MongoDB環(huán)境配置 182
8.2.3 MongoDB基本語法 186
8.2.4 使用PyMongo連接MongoDB 188
8.2.5 導入/導出JSON文件 189
第9章 Python文件讀取
9.1 Python文本文件讀寫 190
9.2 數(shù)據(jù)文件CSV 192
9.3 數(shù)據(jù)交換格式JSON 193
9.3.1 JSON模塊的使用 194
【示例9-1】請用JSON模塊將data變量(包含列表、數(shù)字和字典的數(shù)組)轉(zhuǎn)換成字符串并還原 194
9.3.2 JSON模塊的數(shù)據(jù)轉(zhuǎn)換 195
9.4 Excel讀寫模塊:xlrd 195
9.4.1 讀取Excel文件 196
9.4.2 寫入Excel單元格 197
9.5 PowerPoint文件讀寫模塊:pptx 197
9.5.1 讀取pptx 197
9.5.2 寫入pptx 198
9.6 重要的數(shù)據(jù)處理庫:Pandas庫 199
9.6.1 使用pandas庫處理CSV文件 200
9.6.2 使用pandas庫處理JSON文件 200
9.6.3 使用pandas庫處理HTML文件 202
【示例9-2】用read_html()將某二手房網(wǎng)站表格中的數(shù)據(jù)提取出來 203
9.6.4 使用pandas庫處理SQL文件 203
9.7 調(diào)用Office軟件擴展包:win32com 204
9.7.1 讀取Excel文件 204
9.7.2 讀取Word文件 205
9.7.3 讀取PowerPoint文件 205
9.8 讀取PDF文件 206
9.8.1 讀取英文PDF文檔 206
9.8.2 讀取中文PDF文檔 208
9.8.3 讀取掃描型PDF文檔 210
9.9 綜合實例:自動將網(wǎng)絡文章轉(zhuǎn)化為PPT文檔 211
第10章 通過API獲取數(shù)據(jù)
10.1 免費財經(jīng)API——TuShare 214
10.1.1 獲取股票交易數(shù)據(jù) 215
【示例10-1】獲取某股票2017年8月份的周K線數(shù)據(jù) 215
10.1.2 獲取宏觀經(jīng)濟數(shù)據(jù) 217
10.1.3 獲取電影票房數(shù)據(jù) 219
10.2 新浪微博API的調(diào)用 220
10.2.1 創(chuàng)建應用 220
10.2.2 使用API 222
10.3 調(diào)用百度地圖API 225
10.3.1 獲取城市經(jīng)緯度 226
【示例10-2】使用百度地圖API獲取南京市的經(jīng)緯度信息 226
10.3.2 定位網(wǎng)絡IP 226
【示例10-3】使用百度API定位IP地址(223.112.112.144) 226
10.3.3 獲取全景靜態(tài)圖 227
10.4 調(diào)用淘寶API 228
第11章 網(wǎng)絡爬蟲工具
11.1 使用Excel采集網(wǎng)頁數(shù)據(jù) 231
11.1.1 抓取網(wǎng)頁中的表格 232
11.1.2 抓取非表格的結構化數(shù)據(jù) 233
11.2 使用Web Scraper插件 237
11.2.1 安裝Web Scraper 237
11.2.2 Web Scraper的使用 238
【示例11-1】使用Web Scraper爬取當當網(wǎng)小說書目 238
11.3 商業(yè)化爬取工具 240
11.3.1 自定義采集 241
【示例11-2】利用網(wǎng)絡爬蟲軟件八爪魚自定義采集當當網(wǎng)圖書信息 241
11.3.2 網(wǎng)站簡易采集 245
【示例11-3】利用網(wǎng)絡爬蟲軟件八爪魚的網(wǎng)絡簡易采集方式抓取房天下網(wǎng)中的合肥新房房價數(shù)據(jù) 245
第12章 數(shù)據(jù)分析工具:科學計算庫
12.1 單一類型數(shù)據(jù)高效處理:Numpy庫 248
12.1.1 ndarray數(shù)組 248
【示例12-1】對一維ndarray數(shù)組a進行讀取、修改和切片操作 249
【示例12-2】對多維ndarray數(shù)組b進行讀取、修改和切片操作 250
【示例12-3】對多維ndarray數(shù)組n進行矩陣運算(拼接、分解、轉(zhuǎn)置、行列式、
求逆和點乘) 252
12.1.2 Numpy常用函數(shù) 253
【示例12-4】對多維ndarray數(shù)組a進行統(tǒng)計操作 253
【示例12-5】對一維ndarray數(shù)組a進行數(shù)據(jù)處理操作(去重、直方圖統(tǒng)計、相關
系數(shù)、分段、多項式擬合) 256
12.1.3 Numpy性能優(yōu)化 257
12.2 復雜數(shù)據(jù)全面處理:Pandas庫 258
12.2.1 Pandas庫中的4種基礎數(shù)據(jù)結構 258
12.2.2 Pandas使用技巧 264
【示例12-6】對比普通for循環(huán)遍歷與iterrows()遍歷方法的速度差異 264
12.3 Python機器學習庫:Scikit-learn 268
【示例12-7】以鳶尾花數(shù)據(jù)為例,使用Sklearn進行監(jiān)督學習的基本建模過程(決策樹模型) 269
第13章 掌握繪圖軟件:將數(shù)據(jù)可視化
13.1 應用廣泛的數(shù)據(jù)可視化:Excel繪圖 271
13.1.1 繪制(對比)柱形圖 272
13.1.2 繪制餅圖并添加標注 273
13.1.3 其他圖形 275
13.1.4 Excel頻率分布直方圖 276
【示例13-1】利用Excel繪制全國各省市城鎮(zhèn)人員平均工資頻率分布直方圖 276
13.2 適合處理海量數(shù)據(jù):Tableau繪圖 278
13.2.1 基本操作:導入數(shù)據(jù) 278
13.2.2 繪制(多重)柱狀對比圖 279
13.2.3 智能顯示:圖形轉(zhuǎn)換 281
13.2.4 繪制頻率分布直方圖 281
【示例13-2】利用Tableau繪制2015年我國城鎮(zhèn)就業(yè)人員平均工資頻率分布直方圖 281
13.3 完善的二維繪圖庫:Matplotlib/Seaborn 283
13.3.1 使用Matplotlib繪制函數(shù)圖表 283
13.3.2 使用Matplotlib繪制統(tǒng)計圖表 285
13.4 優(yōu)化:Seaborn的使用 289
13.5 綜合實例:利用Matplotlib構建合肥美食地圖 293
13.5.1 繪制區(qū)域地圖 293
13.5.2 利用百度地圖Web服務API獲取美食地址 294
13.5.3 數(shù)據(jù)分析 298
13.5.4 繪制熱力圖完善美食地圖展示 300

本目錄推薦

掃描二維碼
Copyright ? 讀書網(wǎng) ranfinancial.com 2005-2020, All Rights Reserved.
鄂ICP備15019699號 鄂公網(wǎng)安備 42010302001612號