《大數(shù)據(jù)采集與爬蟲(chóng)》主要講解了如何使用Python編寫(xiě)網(wǎng)絡(luò)爬蟲(chóng)程序,內(nèi)容包括Python環(huán)境搭建、Python的基礎(chǔ)語(yǔ)法、爬蟲(chóng)基礎(chǔ)知識(shí)、網(wǎng)絡(luò)基礎(chǔ)知識(shí)、常用爬蟲(chóng)庫(kù)和解析庫(kù)、數(shù)據(jù)持久化存儲(chǔ)、Web API和異步數(shù)據(jù)抓取技術(shù)、Selenium和ChromeDriver的用法,以及Scrapy爬蟲(chóng)框架的基本原理和操作。*后介紹了一個(gè)網(wǎng)絡(luò)爬蟲(chóng)的綜合案例,以鞏固前面所學(xué)的知識(shí)。
《大數(shù)據(jù)采集與爬蟲(chóng)》適合作為高等職業(yè)院校大數(shù)據(jù)技術(shù)與應(yīng)用專(zhuān)業(yè)的教材,也適合有一定Python編程經(jīng)驗(yàn)并且對(duì)爬蟲(chóng)技術(shù)感興趣的讀者閱讀。
目錄
前言
任務(wù)1 Python環(huán)境搭建
1.1 任務(wù)描述
1.2 Python概述
1.3 Python編程環(huán)境搭建
1.3.1 在Windows操作系統(tǒng)下安裝Python
1.3.2 在 Linux操作系統(tǒng)下安裝Python
1.3.3 在 Mac OS操作系統(tǒng)下安裝Python
1.4 安裝集成開(kāi)發(fā)環(huán)境PyCharm
1.4.1 PyCharm概述
1.4.2 PyCharm的安裝和運(yùn)行
1.5 Python的數(shù)據(jù)類(lèi)型
1.5.1 整型
1.5.2 浮點(diǎn)型
1.5.3 字符串類(lèi)型
1.5.4 列表類(lèi)型
1.5.5 集合類(lèi)型
1.5.6 字典類(lèi)型
1.5.7 元組類(lèi)型
1.6 Python語(yǔ)句與函數(shù)
1.6.1 條件判斷語(yǔ)句
1.6.2 循環(huán)語(yǔ)句
1.6.3 自定義函數(shù)
1.7 任務(wù)實(shí)現(xiàn)
1.8 小結(jié)
1.9 習(xí)題
任務(wù)2 實(shí)現(xiàn)簡(jiǎn)單數(shù)據(jù)采集
2.1 任務(wù)描述
2.2 網(wǎng)絡(luò)爬蟲(chóng)基礎(chǔ)知識(shí)
2.2.1 網(wǎng)絡(luò)爬蟲(chóng)概述
2.2.2 使用網(wǎng)絡(luò)爬蟲(chóng)的風(fēng)險(xiǎn)
2.2.3 Python爬蟲(chóng)的工作過(guò)程
2.3 網(wǎng)絡(luò)基礎(chǔ)知識(shí)
2.3.1 HTML
2.3.2 URI和URL
2.3.3 HTTP
2.3.4 Request和Response
2.4 requests庫(kù)的安裝及使用
2.4.1 requests庫(kù)概述
2.4.2 requests庫(kù)的安裝
2.4.3 requests庫(kù)的基本用法
2.5 lxml庫(kù)和BeautifulSoup庫(kù)的安裝及使用
2.5.1 lxml庫(kù)概述
2.5.2 BeautifulSoup庫(kù)概述
2.5.3 lxml庫(kù)和BeautifulSoup庫(kù)的安裝
2.5.4 lxml庫(kù)和BeautifulSoup庫(kù)的基本用法
2.6 任務(wù)實(shí)現(xiàn)
2.7 小結(jié)
2.8 習(xí)題
任務(wù)3 存儲(chǔ)數(shù)據(jù)
3.1 任務(wù)描述
3.2 MySQL的安裝及使用
3.2.1 MySQL概述
3.2.2 MySQL的安裝
3.2.3 MySQL的操作
3.3 PyMySQL的使用
3.4 CSV和JSON格式
3.4.1 CSV格式概述
3.4.2 輸出CSV文件頭部
3.4.3 使用Python讀取CSV文件數(shù)據(jù)
3.4.4 使用Python向CSV文件寫(xiě)入數(shù)據(jù)
3.4.5 JSON格式概述
3.4.6 使用Python讀取JSON文件數(shù)據(jù)
3.4.7 使用Python向JSON文件寫(xiě)入數(shù)據(jù)
3.5 任務(wù)實(shí)現(xiàn)
3.6 小結(jié)
3.7 習(xí)題
任務(wù)4 使用Web API采集數(shù)據(jù)
4.1 任務(wù)描述
4.2 GitHub
4.2.1 GitHub概述
4.2.2 GitHub的基本用法
4.3 Web API
4.3.1 Web API概述
4.3.2 GitHub開(kāi)放API的數(shù)據(jù)特點(diǎn)
4.3.3 GitHub的API請(qǐng)求數(shù)據(jù)
4.3.4 獲取API的響應(yīng)數(shù)據(jù)
4.3.5 處理API的響應(yīng)數(shù)據(jù)
4.4 任務(wù)實(shí)現(xiàn)
4.5 小結(jié)
4.6 習(xí)題
任務(wù)5 使用AJAX采集數(shù)據(jù)
5.1 任務(wù)描述
5.2 AJAX
5.2.1 AJAX的起源
5.2.2 AJAX概述
5.2.3 AJAX的特點(diǎn)
5.2.4 靜態(tài)數(shù)據(jù)
5.2.5 動(dòng)態(tài)數(shù)據(jù)
5.2.6 分析AJAX采集的數(shù)據(jù)
5.2.7 提取AJAX采集的數(shù)據(jù)
5.3 任務(wù)實(shí)現(xiàn)
5.4 小結(jié)
5.5 習(xí)題
任務(wù)6 主流驗(yàn)證碼解析
6.1 驗(yàn)證碼概述
6.2 自定義圖形驗(yàn)證碼解析
6.2.1 任務(wù)描述
6.2.2 圖形驗(yàn)證碼概述
6.2.3 tesserocr庫(kù)概述
6.2.4 tesserocr庫(kù)的安裝
6.2.5 自定義圖形驗(yàn)證碼的生成
6.2.6 使用tesserocr庫(kù)解析自定義圖形驗(yàn)證碼
6.2.7 任務(wù)實(shí)現(xiàn)
6.3 滑動(dòng)驗(yàn)證碼解析
6.3.1 任務(wù)描述
6.3.2 滑動(dòng)驗(yàn)證碼概述
6.3.3 ChromeDriver概述
6.3.4 ChromeDriver的安裝
6.3.5 Selenium概述
6.3.6 Selenium的安裝
6.3.7 Selenium和ChromeDriver的基本用法
6.3.8 任務(wù)實(shí)現(xiàn)
6.4 點(diǎn)擊式驗(yàn)證碼解析
6.4.1 任務(wù)描述
6.4.2 點(diǎn)擊式驗(yàn)證碼概述
6.4.3 聚合數(shù)據(jù)平臺(tái)接口概述
6.4.4 任務(wù)實(shí)現(xiàn)
6.5 小結(jié)
6.6 習(xí)題
任務(wù)7 模擬登錄
7.1 使用Selenium和ChromeDriver實(shí)現(xiàn)模擬登錄
7.1.1 任務(wù)描述
7.1.2 GET概述
7.1.3 GET的基本用法
7.1.4 POST概述
7.1.5 POST的基本用法
7.1.6 GET和POST的區(qū)別
7.1.7 任務(wù)實(shí)現(xiàn)
7.2 使用Cookie實(shí)現(xiàn)模擬登錄
7.2.1 任務(wù)描述
7.2.2 Cookie概述
7.2.3 Session概述
7.2.4 Cookie和Session的區(qū)別
7.2.5 任務(wù)實(shí)現(xiàn)——使用Cookie模擬登錄
7.2.6 任務(wù)實(shí)現(xiàn)——使用requests庫(kù)實(shí)現(xiàn)用Cookie和Session模擬登錄
7.3 小結(jié)
7.4 習(xí)題
任務(wù)8 使用Scrapy爬蟲(chóng)框架采集數(shù)據(jù)
8.1 任務(wù)描述
8.2 Scrapy
8.2.1 Scrapy概述
8.2.2 Scrapy的工作原理
8.3 Scrapy的安裝
8.3.1 在Windows操作系統(tǒng)下安裝Scrapy
8.3.2 在Linux操作系統(tǒng)下安裝Scrapy
8.4 Scrapy各組件的用法
8.4.1 Selector類(lèi)
8.4.2 Spider類(lèi)
8.4.3 下載器中間件
8.4.4 條目管道
8.4.5 網(wǎng)絡(luò)爬蟲(chóng)中間件
8.5 任務(wù)實(shí)現(xiàn)
8.6 小結(jié)
8.7 習(xí)題
任務(wù)9 綜合案例
9.1 任務(wù)描述
9.2 頁(yè)面分析
9.3 模擬登錄
9.4 獲取靜態(tài)數(shù)據(jù)
9.5 獲取動(dòng)態(tài)數(shù)據(jù)
9.6 數(shù)據(jù)持久化保存
9.7 小結(jié)