零基礎(chǔ)學(xué)Python網(wǎng)絡(luò)爬蟲(升級版)
定 價:99 元
- 作者:明日科技
- 出版時間:2024/5/1
- ISBN:9787121477928
- 出 版 社:電子工業(yè)出版社
- 中圖法分類:TP311.561
- 頁碼:228
- 紙張:
- 版次:01
- 開本:16開
《零基礎(chǔ)學(xué)Python網(wǎng)絡(luò)爬蟲》(升級版)一書適用于 Python 爬蟲入門學(xué)習(xí)的讀者,書中全面介紹了使用 Python進(jìn)行網(wǎng)絡(luò)爬蟲開發(fā)的入門必備知識,本書從學(xué)習(xí)與應(yīng)用的角度出發(fā),幫助讀者快速掌握網(wǎng)絡(luò)爬蟲的各項技能。全書共 17 章,包括初識網(wǎng)絡(luò)爬蟲、了解 Web 前端、多種網(wǎng)絡(luò)請求模塊、網(wǎng)頁數(shù)據(jù)的多種解析方式、爬取動態(tài)渲染的信息、多線程與多進(jìn)程爬蟲、數(shù)據(jù)處理與存儲、App 抓包工具、識別驗證碼、Scrapy 爬蟲框架、Scrapy-Redis 分布式爬蟲以及可視化爬蟲:數(shù)據(jù)偵探項目。本書側(cè)重爬蟲技術(shù)的實戰(zhàn)應(yīng)用,包含典型應(yīng)用示例、實用案例和項目,力求為讀者打造一本學(xué)習(xí)入門 + 應(yīng)用 + 實踐一體化的精彩的 Python 網(wǎng)絡(luò)爬蟲圖書。
明日科技是一家專業(yè)從事軟件開發(fā)、教育培訓(xùn)以及軟件開發(fā)教育資源整合的高科技公司。其編寫的教材既注重選取軟件開發(fā)中的必需、常用內(nèi)容,又注重內(nèi)容的易學(xué)易用以及相關(guān)知識的拓展,深受讀者喜愛。同時,其編寫的教材多次榮獲"全行業(yè)優(yōu)秀暢銷品種”"中國大學(xué)出版社圖書獎優(yōu)秀暢銷書”等獎項,多個品種長期位居同類圖書銷售排行榜的前列。
第 1 章 初識網(wǎng)絡(luò)爬蟲
e 學(xué)碼:5 個
1.1 網(wǎng)絡(luò)爬蟲概述
1.2 網(wǎng)絡(luò)爬蟲的分類
1.3 網(wǎng)絡(luò)爬蟲的基本原理
1.4 Windows下搭建開發(fā)環(huán)境
1.4.1 安裝Anaconda
1.4.2 PyCharm的下載與安裝
1.4.3 配置PyCharm
1.4.4 測試PyCharm
第 2 章 請求模塊 Urllib
精彩實例:22 個 e 學(xué)碼:5 個
2.1 Urllib簡介
2.2 使用urlopen()方法發(fā)送請求
2.2.1 發(fā)送GET請求
? 實例2.1 演示常用的方法與屬性
2.2.2 發(fā)送POST請求
? 實例2.2 發(fā)送POST請求
2.2.3 設(shè)置網(wǎng)絡(luò)超時
? 實例2.3 處理網(wǎng)絡(luò)超時
2.3 復(fù)雜的網(wǎng)絡(luò)請求
2.3.1 設(shè)置請求頭
? 實例2.4 設(shè)置請求頭
2.3.2 Cookie的獲取與設(shè)置
? 實例2.5 模擬登錄
? 實例2.6 獲取Cookie
? 實例2.7 保存Cookie文件
? 實例2.8 使用Cookie信息登錄并獲取登錄后頁面中的信息
2.3.3 設(shè)置代理IP地址
? 實例2.9 設(shè)置代理IP地址
2.4 異常處理
? 實例2.10 處理URLError異常
? 實例2.11 使用HTTPError類捕獲異常
? 實例2.12 雙重異常的捕獲
2.5 解析鏈接
2.5.1 拆分URL
? 實例2.13 使用urlparse()方法拆分URL
? 實例2.14 使用urlsplit()方法拆分URL
2.5.2 組合URL
? 實例2.15 使用urlunparse()方法組合URL
? 實例2.16 使用urlunsplit()方法組合URL
2.5.3 連接URL
? 實例2.17 使用urljoin()方法連接URL
2.5.4 URL的編碼與解碼
? 實例2.18 使用urlencode()方法編碼請求
參數(shù)
? 實例2.19 使用quote()方法編碼字符串
參數(shù)
? 實例2.20 使用unquote()方法解碼請求
參數(shù)
2.5.5 URL參數(shù)的轉(zhuǎn)換
? 實例2.21 使用parse_qs()方法將參數(shù)轉(zhuǎn)換
為字典類型
? 實例2.22 使用parse_qsl()方法將參數(shù)轉(zhuǎn)換為元組所組成的列表
第 3 章 請求模塊 requests
精彩實例:13 個 e 學(xué)碼:6 個
3.1 請求方式
3.1.1 GET請求
? 實例3.1 實現(xiàn)不帶參數(shù)的GET網(wǎng)絡(luò)請求
3.1.2 對響應(yīng)結(jié)果進(jìn)行utf-8編碼
? 實例3.2 獲取請求地址所對應(yīng)的網(wǎng)頁源碼
3.1.3 爬取二進(jìn)制數(shù)據(jù)
? 實例3.3 下載某網(wǎng)站首頁中的logo圖片
3.1.4 GET(帶參)請求
3.1.5 POST請求
? 實例3.4 實現(xiàn)POST請求
3.2 復(fù)雜的網(wǎng)絡(luò)請求
3.2.1 添加請求頭
? 實例3.5 添加請求頭
3.2.2 驗證Cookie
? 實例3.6 通過驗證Cookie模擬網(wǎng)頁登錄
3.2.3 會話請求
? 實例3.7 實現(xiàn)會話請求
3.2.4 驗證請求
? 實例3.8 驗證請求
3.2.5 網(wǎng)絡(luò)超時與異常
? 實例3.9 演示網(wǎng)絡(luò)超時與異常
? 實例3.10 識別網(wǎng)絡(luò)異常的分類
3.2.6 上傳文件
? 實例3.11 上傳圖片文件
3.3 代理服務(wù)
3.3.1 代理的應(yīng)用
? 實例3.12 通過代理發(fā)送請求
3.3.2 獲取免費的代理IP地址
3.3.3 檢測代理IP地址是否有效
? 實例3.13 檢測代理IP地址是否有效
第 4 章 高級網(wǎng)絡(luò)請求模塊
精彩實例:1 個 e 學(xué)碼:5 個
4.1 requests-cache的安裝與測試
4.2 緩存的應(yīng)用
4.3 強(qiáng)大的requests-HTML模塊
4.3.1 使用requests-HTML實現(xiàn)網(wǎng)絡(luò)請求. 51 4.3.2 數(shù)據(jù)的提取
? 實例4.1 爬取即時新聞
第 5 章 正則表達(dá)式
精彩實例:8 個 e 學(xué)碼:2 個
5.1 使用search()方法匹配字符串
5.1.1 獲取第一個指定字符開頭的字符串
? 實例5.1 搜索第一個“mr_”開頭的字符串
5.1.2 可選匹配
? 實例5.2 可選匹配字符串中的內(nèi)容
5.1.3 匹配字符串邊界
? 實例5.3 使用“\b”匹配字符串的邊界
5.2 使用findall()方法匹配字符串
5.2.1 匹配所有指定字符開頭的字符串
? 實例5.4 匹配所有以“mr_”開頭的字符串
5.2.2 貪婪匹配
? 實例5.5 使用“.*”實現(xiàn)貪婪匹配字符串
5.2.3 非貪婪匹配
? 實例5.6 使用“.*?”實現(xiàn)非貪婪匹配字符串
5.3 字符串處理
5.3.1 替換字符串
? 實例5.7 使用sub()方法替換字符串
5.3.2 分割字符串
? 實例5.8 使用split()方法分割字符串.
5.4 案例:爬取某音樂熱歌榜
5.4.1 分析數(shù)據(jù)
5.4.2 實現(xiàn)爬蟲
第 6 章 XPath 解析
精彩實例:15 個 e 學(xué)碼:2 個
6.1 XPath概述
6.2 XPath的解析操作
6.2.1 解析HTML
? 實例6.1 解析本地的HTML文件
? 實例6.2 解析字符串類型的HTML代碼
? 實例6.3 解析服務(wù)器返回的HTML代碼
6.2.2 獲取所有節(jié)點
? 實例6.4 獲取HTML代碼的所有節(jié)點
6.2.3 獲取子節(jié)點
? 實例6.5 獲取一個節(jié)點中的子節(jié)點
? 實例6.6 獲取子孫節(jié)點
6.2.4 獲取父節(jié)點
? 實例6.7 獲取一個節(jié)點的父節(jié)點
6.2.5 獲取文本
? 實例6.8 獲取HTML代碼中的文本
6.2.6 屬性的單值匹配
? 實例6.9 使用“[@. ]”實現(xiàn)節(jié)點屬性的
匹配
? 實例6.10 屬性多值匹配
? 實例6.11 一個節(jié)點中多個屬性的匹配.
6.2.7 獲取屬性
? 實例6.12 獲取屬性所對應(yīng)的值
6.2.8 按序獲取屬性值
? 實例6.13 使用索引按序獲取屬性對應(yīng)的值
6.2.9 使用節(jié)點軸獲取節(jié)點內(nèi)容
? 實例6.14 使用節(jié)點軸的方式獲取節(jié)點內(nèi)容
6.3 案例:爬取某網(wǎng)站電影Top250
6.3.1 分析請求地址
6.3.2 分析信息位置
6.3.3 爬蟲代碼的實現(xiàn)
? 實例6.15 編寫爬取某網(wǎng)站電影
Top250的代碼
第 7 章 解析數(shù)據(jù)的 Beautiful Soup 模塊82
精彩實例:13 個 e 學(xué)碼:3 個
7.1 使用Beautiful Soup解析數(shù)據(jù)
7.1.1 Beautiful Soup的安裝
7.1.2 解析器
7.1.3 Beautiful Soup的簡單應(yīng)用
? 實例7.1 解析HTML代碼
7.2 獲取節(jié)點內(nèi)容
7.2.1 獲取節(jié)點對應(yīng)的代碼
? 實例7.2 獲取節(jié)點對應(yīng)的代碼
7.2.2 獲取節(jié)點屬性
? 實例7.3 獲取節(jié)點屬性
7.2.3 獲取節(jié)點包含的文本內(nèi)容
7.2.4 嵌套獲取節(jié)點內(nèi)容
? 實例7.4 嵌套獲取節(jié)點內(nèi)容
7.2.5 關(guān)聯(lián)獲取
? 實例7.5 獲取子節(jié)點
? 實例7.6 獲取子孫節(jié)點
? 實例7.7 獲取父節(jié)點
? 實例7.8 獲取兄弟節(jié)點
7.3 使用方法獲取內(nèi)容
7.3.1 find_all()方法——獲取所有符合
條件的內(nèi)容
? 實例7.9 find_all(name)方法通過節(jié)點名稱獲取內(nèi)容
? 實例7.10 find_all(attrs)方法通過指定屬性獲取內(nèi)容
? 實例7.11 find_all(text)方法獲取節(jié)點中的文本
7.3.2 find()方法——獲取第一個匹配的節(jié)點內(nèi)容
? 實例7.12 獲取第一個匹配的節(jié)點內(nèi)容
7.3.3 其他方法
7.4 CSS選擇器
? 實例7.13 使用CSS選擇器獲取節(jié)點內(nèi)容 97
第 8 章 多線程與多進(jìn)程爬蟲
精彩實例:11 個 e 學(xué)碼:6 個
8.1 進(jìn)程與線程
8.1.1 什么是進(jìn)程
8.1.2 什么是線程
8.2 創(chuàng)建線程
8.2.1 使用threading模塊創(chuàng)建線程
? 實例8.1 使用threading模塊創(chuàng)建線程
8.2.2 使用Thread子類創(chuàng)建線程
? 實例8.2 使用Thread子類創(chuàng)建線程
8.3 線程間通信
? 實例8.3 驗證線程之間是否可以共享信息
8.3.1 什么是互斥鎖
8.3.2 使用互斥鎖
? 實例8.4 使用多線程的互斥鎖
8.3.3 使用Queue在線程間通信
? 實例8.5 使用Queue在線程間通信
8.4 創(chuàng)建進(jìn)程的常用方式
8.4.1 使用multiprocessing模塊創(chuàng)建進(jìn)程
? 實例8.6 演示Process類的方法和屬性的使用
8.4.2 使用Process子類創(chuàng)建進(jìn)程
? 實例8.7 使用Process子類創(chuàng)建多個進(jìn)程
8.4.3 使用Pool進(jìn)程池創(chuàng)建進(jìn)程
? 實例8.8 使用進(jìn)程池創(chuàng)建多進(jìn)程
8.5 進(jìn)程間通信
? 實例8.9 驗證進(jìn)程之間能否直接共享信息
8.5.1 隊列簡介
8.5.2 多進(jìn)程隊列的使用
? 實例8.10 多進(jìn)程隊列的使用
8.5.3 使用隊列在進(jìn)程間通信
? 實例8.11 使用隊列在進(jìn)程間通信
第 9 章 數(shù)據(jù)處理與存儲
精彩實例:8 個 e 學(xué)碼:7 個
9.1 數(shù)據(jù)處理
9.1.1 pandas數(shù)據(jù)結(jié)構(gòu)
9.1.2 數(shù)據(jù)的增、刪、改、查
9.1.3 NaN數(shù)據(jù)處理
9.1.4 刪除重復(fù)數(shù)據(jù)
9.2 文件的存取
9.2.1 TXT基本文件操作
? 實例9.1 TXT文件存儲
? 實例9.2 讀取message.txt文件中的
前9個字符
? 實例9.3 從文件的第11個字符開始
讀取8個字符
? 實例9.4 讀取一行
? 實例9.5 讀取全部行
9.2.2 存取CSV文件
9.2.3 存取Excel文件
9.3 SQLite數(shù)據(jù)庫
9.3.1 創(chuàng)建數(shù)據(jù)庫文件
9.3.2 操作SQLite
9.4 MySQL數(shù)據(jù)庫
9.4.2 安裝MySQL服務(wù)器
? 實例9.6 連接數(shù)據(jù)庫
? 實例9.7 創(chuàng)建數(shù)據(jù)表
? 實例9.8 操作數(shù)據(jù)表
第 10 章 App 抓包工具
e 學(xué)碼:6 個
10.1 Charles工具的下載與安裝
10.2 SSL證書的安裝
10.2.1 安裝PC端證書
10.2.2 設(shè)置代理
10.2.3 配置網(wǎng)絡(luò)
10.2.4 安裝手機(jī)端證書
第 11 章 識別驗證碼
精彩實例:4 個 e 學(xué)碼:5 個
11.1 字符驗證碼
11.1.1 搭建OCR環(huán)境
11.1.2 下載驗證碼圖片
? 實例11.1 下載驗證碼圖片
11.1.3 識別驗證碼
? 實例11.2 識別驗證碼
11.2 第三方驗證碼識別
? 實例11.3 第三方打碼平臺
11.3 滑動拼圖驗證碼
? 實例11.4 滑動拼圖驗證碼
第 12 章 Scrapy 爬蟲框架
精彩實例:8 個 e 學(xué)碼:8 個
12.1 了解Scrapy爬蟲框架
12.2 Scrapy的基本應(yīng)用
12.2.1 創(chuàng)建Scrapy項目
12.2.2 創(chuàng)建爬蟲
? 實例12.1 爬取網(wǎng)頁代碼并保存HTML
文件
12.2.3 獲取數(shù)據(jù)
? 實例12.2 使用XPath表達(dá)式獲取多條信息
? 實例12.3 翻頁提取數(shù)據(jù)
? 實例12.4 包裝結(jié)構(gòu)化數(shù)據(jù)
12.2.4 將爬取的數(shù)據(jù)保存為多種格式的
文件
12.3 編寫Item Pipeline
12.3.1 Item Pipeline的核心方法
12.3.2 將信息存儲到數(shù)據(jù)庫
? 實例12.5 將數(shù)據(jù)存儲到數(shù)據(jù)庫
12.4 自定義中間件
12.4.1 設(shè)置隨機(jī)請求頭
? 實例12.6 設(shè)置隨機(jī)請求頭
12.4.2 設(shè)置Cookie
12.4.3 設(shè)置代理IP地址
? 實例12.7 隨機(jī)代理中間件
12.5 文件下載
? 實例12.8 下載手機(jī)商品圖片
第 13 章 爬取編程 e 學(xué)網(wǎng)視頻
精彩實例:8 個 e 學(xué)碼:8 個
13.1 案例效果預(yù)覽
13.2 案例準(zhǔn)備
13.3 業(yè)務(wù)流程
13.4 實現(xiàn)過程
13.4.1 查找視頻頁面
13.4.2 分析視頻地址
13.4.3 實現(xiàn)視頻下載
第 14 章 爬取某網(wǎng)站的手機(jī)數(shù)據(jù)
14.1 案例效果預(yù)覽
14.2 案例準(zhǔn)備
14.3 業(yè)務(wù)流程
14.4 實現(xiàn)過程
14.4.1 分析手機(jī)主頁中的每頁地址
14.4.2 分析每個手機(jī)的詳情頁地址
14.4.3 確認(rèn)詳情頁手機(jī)數(shù)據(jù)的位置
14.4.4 創(chuàng)建MySQL數(shù)據(jù)表
14.4.5 編寫爬蟲程序
第 15 章 爬取北、上、廣、深租房信息
15.1 案例效果預(yù)覽
15.2 案例準(zhǔn)備
15.3 業(yè)務(wù)流程
15.4 實現(xiàn)過程
15.4.1 獲取租房信息總頁碼
15.4.2 確認(rèn)數(shù)據(jù)所在的標(biāo)簽位置
15.4.3 編寫爬蟲程序提取數(shù)據(jù)