《大數(shù)據(jù)采集與爬蟲》主要講解了如何使用Python編寫網(wǎng)絡(luò)爬蟲程序,內(nèi)容包括Python環(huán)境搭建、Python的基礎(chǔ)語法、爬蟲基礎(chǔ)知識(shí)、網(wǎng)絡(luò)基礎(chǔ)知識(shí)、常用爬蟲庫和解析庫、數(shù)據(jù)持久化存儲(chǔ)、Web API和異步數(shù)據(jù)抓取技術(shù)、Selenium和ChromeDriver的用法,以及Scrapy爬蟲框架的基本原理和操作。*后介紹了一個(gè)網(wǎng)絡(luò)爬蟲的綜合案例,以鞏固前面所學(xué)的知識(shí)。
《大數(shù)據(jù)采集與爬蟲》適合作為高等職業(yè)院校大數(shù)據(jù)技術(shù)與應(yīng)用專業(yè)的教材,也適合有一定Python編程經(jīng)驗(yàn)并且對爬蟲技術(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 安裝集成開發(fā)環(huán)境PyCharm
1.4.1 PyCharm概述
1.4.2 PyCharm的安裝和運(yùn)行
1.5 Python的數(shù)據(jù)類型
1.5.1 整型
1.5.2 浮點(diǎn)型
1.5.3 字符串類型
1.5.4 列表類型
1.5.5 集合類型
1.5.6 字典類型
1.5.7 元組類型
1.6 Python語句與函數(shù)
1.6.1 條件判斷語句
1.6.2 循環(huán)語句
1.6.3 自定義函數(shù)
1.7 任務(wù)實(shí)現(xiàn)
1.8 小結(jié)
1.9 習(xí)題
任務(wù)2 實(shí)現(xiàn)簡單數(shù)據(jù)采集
2.1 任務(wù)描述
2.2 網(wǎng)絡(luò)爬蟲基礎(chǔ)知識(shí)
2.2.1 網(wǎng)絡(luò)爬蟲概述
2.2.2 使用網(wǎng)絡(luò)爬蟲的風(fēng)險(xiǎn)
2.2.3 Python爬蟲的工作過程
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庫的安裝及使用
2.4.1 requests庫概述
2.4.2 requests庫的安裝
2.4.3 requests庫的基本用法
2.5 lxml庫和BeautifulSoup庫的安裝及使用
2.5.1 lxml庫概述
2.5.2 BeautifulSoup庫概述
2.5.3 lxml庫和BeautifulSoup庫的安裝
2.5.4 lxml庫和BeautifulSoup庫的基本用法
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文件寫入數(shù)據(jù)
3.4.5 JSON格式概述
3.4.6 使用Python讀取JSON文件數(shù)據(jù)
3.4.7 使用Python向JSON文件寫入數(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開放API的數(shù)據(jù)特點(diǎn)
4.3.3 GitHub的API請求數(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庫概述
6.2.4 tesserocr庫的安裝
6.2.5 自定義圖形驗(yàn)證碼的生成
6.2.6 使用tesserocr庫解析自定義圖形驗(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庫實(shí)現(xiàn)用Cookie和Session模擬登錄
7.3 小結(jié)
7.4 習(xí)題
任務(wù)8 使用Scrapy爬蟲框架采集數(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類
8.4.2 Spider類
8.4.3 下載器中間件
8.4.4 條目管道
8.4.5 網(wǎng)絡(luò)爬蟲中間件
8.5 任務(wù)實(shí)現(xiàn)
8.6 小結(jié)
8.7 習(xí)題
任務(wù)9 綜合案例
9.1 任務(wù)描述
9.2 頁面分析
9.3 模擬登錄
9.4 獲取靜態(tài)數(shù)據(jù)
9.5 獲取動(dòng)態(tài)數(shù)據(jù)
9.6 數(shù)據(jù)持久化保存
9.7 小結(jié)