Python網(wǎng)絡爬蟲從入門到進階實戰(zhàn)
定 價:99 元
- 作者:明日科技 編著
- 出版時間:2024/3/1
- ISBN:9787122448347
- 出 版 社:化學工業(yè)出版社
- 中圖法分類:TP311.561
- 頁碼:285
- 紙張:
- 版次:01
- 開本:小16開
《Python 網(wǎng)絡爬蟲從入門到進階實戰(zhàn)》從零基礎入門學習者的角度出發(fā),通過通俗易懂的語言、豐富多彩的實例,循序漸進地讓讀者在實踐中學習Python網(wǎng)絡爬蟲知識,并提升自己的實際開發(fā)能力。
本書主要介紹了爬蟲基礎知識、常用網(wǎng)絡請求模塊的使用(urllib3 模塊、Requests 模塊、高級網(wǎng)絡請求模塊)、數(shù)據(jù)解析與存儲(re 模塊的正則表達式、XPath 的使用、Beautiful Soup 模塊)、爬取動態(tài)渲染的數(shù)據(jù)、多線程爬蟲、多進程爬蟲、抓取App 數(shù)據(jù)、識別驗證碼、Scrapy 爬蟲框架與Scrapy-Redis 分布式爬蟲等內(nèi)容。
本書知識講解詳細,側重講解知識使用場景,涉及的代碼給出了詳細的注釋,可以使讀者輕松領會Python 網(wǎng)絡爬蟲程序開發(fā)的精髓,快速提高開發(fā)技能。
本書適合作為Python 網(wǎng)絡爬蟲程序開發(fā)入門者的自學用書,也適合作為高等院校相關專業(yè)的教學參考書,亦可供開發(fā)人員查閱、參考。
第1篇 爬蟲基礎篇
第1章 認識爬蟲 002
1.1 網(wǎng)絡爬蟲概述 002
1.2 網(wǎng)絡爬蟲的分類 002
1.3 網(wǎng)絡爬蟲的基本原理 003
1.4 爬蟲環(huán)境搭建 004
本章知識思維導圖 004
第2章 爬蟲基礎知識 005
2.1 HTTP 基本原理 005
2.1.1 HTTP 協(xié)議 005
2.1.2 HTTP 與Web 服務器 005
2.1.3 瀏覽器中的請求和響應 006
2.2 HTML 語言 008
2.2.1 什么是HTML 008
2.2.2 了解HTML 結構 008
2.2.3 HTML 的基本標簽 009
2.3 CSS 層疊樣式表 011
2.3.1 CSS 概述 011
2.3.2 屬性選擇器 012
2.3.3 類和id 選擇器 013
2.4 JavaScript 動態(tài)腳本語言 013
本章知識思維導圖 016
第2篇 網(wǎng)絡模塊篇
第3章 urllib3 模塊 018
3.1 urllib3 簡介 018
3.2 發(fā)送網(wǎng)絡請求 019
3.2.1 GET 請求 019
3.2.2 POST 請求 020
3.2.3 重試請求 021
3.2.4 處理響應內(nèi)容 022
3.3 復雜請求的發(fā)送 024
3.3.1 設置請求頭 024
3.3.2 設置超時 025
3.3.3 設置代理IP 026
3.4 上傳文件 027
本章知識思維導圖 029
第4章 Requests 模塊 030
4.1 請求方式 030
4.1.1 GET(不帶參)請求 031
4.1.2 對響應結果進行utf-8 編碼 031
4.1.3 爬取二進制數(shù)據(jù) 032
4.1.4 GET(帶參)請求 033
4.1.5 POST 請求 034
4.2 復雜的網(wǎng)絡請求 035
4.2.1 添加請求頭headers 036
4.2.2 驗證Cookies 036
4.2.3 會話請求 038
4.2.4 驗證請求 039
4.2.5 網(wǎng)絡超時與異常 040
4.2.6 上傳文件 041
4.3 代理服務 043
4.3.1 代理的應用 043
4.3.2 獲取免費的代理IP 044
4.3.3 檢測代理IP 是否有效 045
本章知識思維導圖 047
第5章 高級網(wǎng)絡請求模塊 048
5.1 Requests-Cache 的安裝與測試 048
5.2 緩存的應用 049
5.3 強大的Requests-HTML 模塊 052
5.3.1 使用Requests-HTML 實現(xiàn)網(wǎng)絡請求 052
5.3.2 數(shù)據(jù)的提取 054
5.3.3 獲取動態(tài)加載的數(shù)據(jù) 058
本章知識思維導圖 062
第3篇 數(shù)據(jù)解析與存儲篇
第6章 re 模塊的正則表達式 064
6.1 使用search() 方法匹配字符串 064
6.1.1 獲取第一個指定字符開頭的字符串 064
6.1.2 可選匹配 065
6.1.3 匹配字符串邊界 066
6.2 使用findall() 方法匹配字符串 067
6.2.1 匹配所有指定字符開頭的字符串 067
6.2.2 貪婪匹配 068
6.2.3 非貪婪匹配 068
6.3 字符串處理 070
6.3.1 替換字符串 070
6.3.2 分割字符串 071
6.4 案例:爬取編程e 學網(wǎng)視頻 072
6.4.1 查找視頻頁面 072
6.4.2 分析視頻地址 074
6.4.3 實現(xiàn)視頻下載 075
本章知識思維導圖 077
第7章 XPath 的使用 078
7.1 XPath 概述 078
7.2 XPath 的解析操作 079
7.2.1 解析HTML 079
7.2.2 獲取所有節(jié)點 081
7.2.3 獲取子節(jié)點 083
7.2.4 獲取父節(jié)點 085
7.2.5 獲取文本 086
7.2.6 屬性匹配 087
7.2.7 獲取屬性 089
7.2.8 按序獲取屬性值 090
7.2.9 使用節(jié)點軸獲取節(jié)點內(nèi)容 091
7.3 案例:爬取豆瓣電影Top250 093
7.3.1 分析請求地址 093
7.3.2 分析信息位置 094
7.3.3 爬蟲代碼的實現(xiàn) 095
本章知識思維導圖 097
第8章 Beautiful Soup 模塊 098
8.1 使用Beautiful Soup 解析數(shù)據(jù) 098
8.1.1 Beautiful Soup 的安裝 098
8.1.2 解析器 099
8.1.3 Beautiful Soup 的簡單應用 100
8.2 獲取節(jié)點內(nèi)容 101
8.2.1 獲取節(jié)點對應的代碼 101
8.2.2 獲取節(jié)點屬性 103
8.2.3 獲取節(jié)點包含的文本內(nèi)容 104
8.2.4 嵌套獲取節(jié)點內(nèi)容 105
8.2.5 關聯(lián)獲取 106
8.3 調(diào)用方法獲取內(nèi)容 111
8.3.1 find_all()——獲取所有符合條件的內(nèi)容 111
8.3.2 find()——獲取第一個匹配的節(jié)點內(nèi)容 115
8.3.3 其他方法 116
8.4 CSS 選擇器 117
本章知識思維導圖 120
第9章 數(shù)據(jù)處理與文件存取 121
9.1 了解pandas 數(shù)據(jù)結構 121
9.1.1 Series 對象 121
9.1.2 DataFrame 對象 124
9.2 數(shù)據(jù)處理 126
9.2.1 增添數(shù)據(jù) 126
9.2.2 刪除數(shù)據(jù) 126
9.2.3 修改數(shù)據(jù) 127
9.2.4 查詢數(shù)據(jù) 128
9.3 NaN 數(shù)據(jù)處理 130
9.4 去除重復數(shù)據(jù) 133
9.5 文件的存取 135
9.5.1 基本文件操作TXT 135
9.5.2 存取CSV 文件 140
9.5.3 存取Excel 文件 143
9.6 MySQL 數(shù)據(jù)庫的使用 144
9.6.1 連接數(shù)據(jù)庫 144
9.6.2 創(chuàng)建數(shù)據(jù)表 145
9.6.3 操作MySQL 數(shù)據(jù)表 146
本章知識思維導圖 148
第4篇 技能進階篇
第10章 爬取動態(tài)渲染的數(shù)據(jù) 150
10.1 Ajax 數(shù)據(jù)的爬取 150
10.2 使用selenium 爬取動態(tài)加載的信息 154
10.2.1 安裝selenium 模塊 154
10.2.2 下載瀏覽器驅動 154
10.2.3 selenium 模塊的使用 155
10.3 Splash 的爬蟲應用 157
10.3.1 Splash 中的HTTP API 158
10.3.2 執(zhí)行l(wèi)ua 自定義腳本 161
本章知識思維導圖 163
第11章 多線程爬蟲 164
11.1 進程與線程 164
11.1.1 什么是進程 164
11.1.2 什么是線程 165
11.2 創(chuàng)建線程 165
11.2.1 使用threading 模塊創(chuàng)建線程 165
11.2.2 使用Thread 子類創(chuàng)建線程 166
11.3 線程間通信 167
11.3.1 什么是互斥鎖 168
11.3.2 使用互斥鎖 169
11.3.3 使用隊列在線程間通信 170
11.4 多線程爬蟲 172
本章知識思維導圖 178
第12章 多進程爬蟲 179
12.1 創(chuàng)建進程 179
12.1.1 使用multiprocessing 模塊創(chuàng)建進程 179
12.1.2 使用Process 子類創(chuàng)建進程 183
12.1.3 使用進程池Pool 創(chuàng)建進程 184
12.2 進程間通信 187
12.2.1 隊列簡介 188
12.2.2 多進程隊列的使用 189
12.2.3 使用隊列在進程間通信 191
12.3 多進程爬蟲 192
本章知識思維導圖 197
第13章 爬取App 數(shù)據(jù) 198
13.1 Charles 工具的下載與安裝 198
13.2 SSL 證書的安裝 202
13.2.1 安裝PC 端證書 202
13.2.2 設置代理 206
13.2.3 配置網(wǎng)絡 207
13.2.4 安裝手機端證書 210
13.3 案例:爬取App 數(shù)據(jù) 213
本章知識思維導圖 215
第14章 識別驗證碼 216
14.1 字符驗證碼 216
14.1.1 搭建OCR 環(huán)境 216
14.1.2 下載驗證碼圖片 218
14.1.3 識別驗證碼 219
14.2 第三方驗證碼識別 221
14.3 滑動拼圖驗證碼 225
本章知識思維導圖 228
第5篇 框架篇
第15章 Scrapy 爬蟲框架 230
15.1 了解Scrapy 爬蟲框架 230
15.2 搭建Scrapy 爬蟲框架 231
15.2.1 使用Anaconda 安裝Scrapy 231
15.2.2 Windows 系統(tǒng)下配置Scrapy 233
15.3 Scrapy 的基本應用 235
15.3.1 創(chuàng)建Scrapy 項目 235
15.3.2 創(chuàng)建爬蟲 236
15.3.3 獲取數(shù)據(jù) 240
15.3.4 將爬取的數(shù)據(jù)保存為多種格式的文件 243
15.4 編寫Item Pipeline 244
15.4.1 項目管道的核心方法 244
15.4.2 將信息存儲到數(shù)據(jù)庫中 245
15.5 自定義中間件 248
15.5.1 設置隨機請求頭 249
15.5.2 設置Cookies 252
15.5.3 設置代理ip 255
15.6 文件下載 257
本章知識思維導圖 260
第16章 Scrapy-Redis 分布式爬蟲 261
16.1 安裝Redis 數(shù)據(jù)庫 261
16.2 Scrapy-Redis 模塊 264
16.3 分布式爬取新聞數(shù)據(jù) 265
16.4 自定義分布式爬蟲 277
本章知識思維導圖 285