注冊(cè) | 登錄讀書(shū)好,好讀書(shū),讀好書(shū)!
讀書(shū)網(wǎng)-DuShu.com
當(dāng)前位置: 首頁(yè)出版圖書(shū)科學(xué)技術(shù)計(jì)算機(jī)/網(wǎng)絡(luò)數(shù)據(jù)庫(kù)Python數(shù)據(jù)爬取技術(shù)與實(shí)戰(zhàn)手冊(cè)

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

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

定 價(jià):¥59.80

作 者: 郭卡,戴亮 著
出版社: 中國(guó)鐵道出版社
叢編項(xiàng):
標(biāo) 簽: 暫缺

購(gòu)買這本書(shū)可以去


ISBN: 9787113245221 出版時(shí)間: 2018-08-01 包裝: 平裝
開(kāi)本: 16開(kāi) 頁(yè)數(shù): 316 字?jǐn)?shù):  

內(nèi)容簡(jiǎn)介

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

作者簡(jiǎn)介

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

圖書(shū)目錄

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

本目錄推薦

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