《大數(shù)據(jù)采集與爬蟲》主要講解了如何使用Python編寫網(wǎng)絡爬蟲程序,內(nèi)容包括Python環(huán)境搭建、Python的基礎語法、爬蟲基礎知識、網(wǎng)絡基礎知識、常用爬蟲庫和解析庫、數(shù)據(jù)持久化存儲、Web API和異步數(shù)據(jù)抓取技術、Selenium和ChromeDriver的用法,以及Scrapy爬蟲框架的基本原理和操作。*后介紹了一個網(wǎng)絡爬蟲的綜合案例,以鞏固前面所學的知識。
《大數(shù)據(jù)采集與爬蟲》適合作為高等職業(yè)院校大數(shù)據(jù)技術與應用專業(yè)的教材,也適合有一定Python編程經(jīng)驗并且對爬蟲技術感興趣的讀者閱讀。
目錄
前言
任務1 Python環(huán)境搭建
1.1 任務描述
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的安裝和運行
1.5 Python的數(shù)據(jù)類型
1.5.1 整型
1.5.2 浮點型
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 任務實現(xiàn)
1.8 小結(jié)
1.9 習題
任務2 實現(xiàn)簡單數(shù)據(jù)采集
2.1 任務描述
2.2 網(wǎng)絡爬蟲基礎知識
2.2.1 網(wǎng)絡爬蟲概述
2.2.2 使用網(wǎng)絡爬蟲的風險
2.2.3 Python爬蟲的工作過程
2.3 網(wǎng)絡基礎知識
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 任務實現(xiàn)
2.7 小結(jié)
2.8 習題
任務3 存儲數(shù)據(jù)
3.1 任務描述
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 任務實現(xiàn)
3.6 小結(jié)
3.7 習題
任務4 使用Web API采集數(shù)據(jù)
4.1 任務描述
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ù)特點
4.3.3 GitHub的API請求數(shù)據(jù)
4.3.4 獲取API的響應數(shù)據(jù)
4.3.5 處理API的響應數(shù)據(jù)
4.4 任務實現(xiàn)
4.5 小結(jié)
4.6 習題
任務5 使用AJAX采集數(shù)據(jù)
5.1 任務描述
5.2 AJAX
5.2.1 AJAX的起源
5.2.2 AJAX概述
5.2.3 AJAX的特點
5.2.4 靜態(tài)數(shù)據(jù)
5.2.5 動態(tài)數(shù)據(jù)
5.2.6 分析AJAX采集的數(shù)據(jù)
5.2.7 提取AJAX采集的數(shù)據(jù)
5.3 任務實現(xiàn)
5.4 小結(jié)
5.5 習題
任務6 主流驗證碼解析
6.1 驗證碼概述
6.2 自定義圖形驗證碼解析
6.2.1 任務描述
6.2.2 圖形驗證碼概述
6.2.3 tesserocr庫概述
6.2.4 tesserocr庫的安裝
6.2.5 自定義圖形驗證碼的生成
6.2.6 使用tesserocr庫解析自定義圖形驗證碼
6.2.7 任務實現(xiàn)
6.3 滑動驗證碼解析
6.3.1 任務描述
6.3.2 滑動驗證碼概述
6.3.3 ChromeDriver概述
6.3.4 ChromeDriver的安裝
6.3.5 Selenium概述
6.3.6 Selenium的安裝
6.3.7 Selenium和ChromeDriver的基本用法
6.3.8 任務實現(xiàn)
6.4 點擊式驗證碼解析
6.4.1 任務描述
6.4.2 點擊式驗證碼概述
6.4.3 聚合數(shù)據(jù)平臺接口概述
6.4.4 任務實現(xiàn)
6.5 小結(jié)
6.6 習題
任務7 模擬登錄
7.1 使用Selenium和ChromeDriver實現(xiàn)模擬登錄
7.1.1 任務描述
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 任務實現(xiàn)
7.2 使用Cookie實現(xiàn)模擬登錄
7.2.1 任務描述
7.2.2 Cookie概述
7.2.3 Session概述
7.2.4 Cookie和Session的區(qū)別
7.2.5 任務實現(xiàn)——使用Cookie模擬登錄
7.2.6 任務實現(xiàn)——使用requests庫實現(xiàn)用Cookie和Session模擬登錄
7.3 小結(jié)
7.4 習題
任務8 使用Scrapy爬蟲框架采集數(shù)據(jù)
8.1 任務描述
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)絡爬蟲中間件
8.5 任務實現(xiàn)
8.6 小結(jié)
8.7 習題
任務9 綜合案例
9.1 任務描述
9.2 頁面分析
9.3 模擬登錄
9.4 獲取靜態(tài)數(shù)據(jù)
9.5 獲取動態(tài)數(shù)據(jù)
9.6 數(shù)據(jù)持久化保存
9.7 小結(jié)