Python網(wǎng)絡(luò)爬蟲從入門到進(jìn)階實(shí)戰(zhàn)
定 價:99 元
- 作者:明日科技 編著
- 出版時間:2024/3/1
- ISBN:9787122448347
- 出 版 社:化學(xué)工業(yè)出版社
- 中圖法分類:TP311.561
- 頁碼:285
- 紙張:
- 版次:01
- 開本:小16開
《Python 網(wǎng)絡(luò)爬蟲從入門到進(jìn)階實(shí)戰(zhàn)》從零基礎(chǔ)入門學(xué)習(xí)者的角度出發(fā),通過通俗易懂的語言、豐富多彩的實(shí)例,循序漸進(jìn)地讓讀者在實(shí)踐中學(xué)習(xí)Python網(wǎng)絡(luò)爬蟲知識,并提升自己的實(shí)際開發(fā)能力。
本書主要介紹了爬蟲基礎(chǔ)知識、常用網(wǎng)絡(luò)請求模塊的使用(urllib3 模塊、Requests 模塊、高級網(wǎng)絡(luò)請求模塊)、數(shù)據(jù)解析與存儲(re 模塊的正則表達(dá)式、XPath 的使用、Beautiful Soup 模塊)、爬取動態(tài)渲染的數(shù)據(jù)、多線程爬蟲、多進(jìn)程爬蟲、抓取App 數(shù)據(jù)、識別驗(yàn)證碼、Scrapy 爬蟲框架與Scrapy-Redis 分布式爬蟲等內(nèi)容。
本書知識講解詳細(xì),側(cè)重講解知識使用場景,涉及的代碼給出了詳細(xì)的注釋,可以使讀者輕松領(lǐng)會Python 網(wǎng)絡(luò)爬蟲程序開發(fā)的精髓,快速提高開發(fā)技能。
本書適合作為Python 網(wǎng)絡(luò)爬蟲程序開發(fā)入門者的自學(xué)用書,也適合作為高等院校相關(guān)專業(yè)的教學(xué)參考書,亦可供開發(fā)人員查閱、參考。
第1篇 爬蟲基礎(chǔ)篇
第1章 認(rèn)識爬蟲 002
1.1 網(wǎng)絡(luò)爬蟲概述 002
1.2 網(wǎng)絡(luò)爬蟲的分類 002
1.3 網(wǎng)絡(luò)爬蟲的基本原理 003
1.4 爬蟲環(huán)境搭建 004
本章知識思維導(dǎo)圖 004
第2章 爬蟲基礎(chǔ)知識 005
2.1 HTTP 基本原理 005
2.1.1 HTTP 協(xié)議 005
2.1.2 HTTP 與Web 服務(wù)器 005
2.1.3 瀏覽器中的請求和響應(yīng) 006
2.2 HTML 語言 008
2.2.1 什么是HTML 008
2.2.2 了解HTML 結(jié)構(gòu) 008
2.2.3 HTML 的基本標(biāo)簽 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
本章知識思維導(dǎo)圖 016
第2篇 網(wǎng)絡(luò)模塊篇
第3章 urllib3 模塊 018
3.1 urllib3 簡介 018
3.2 發(fā)送網(wǎng)絡(luò)請求 019
3.2.1 GET 請求 019
3.2.2 POST 請求 020
3.2.3 重試請求 021
3.2.4 處理響應(yīng)內(nèi)容 022
3.3 復(fù)雜請求的發(fā)送 024
3.3.1 設(shè)置請求頭 024
3.3.2 設(shè)置超時 025
3.3.3 設(shè)置代理IP 026
3.4 上傳文件 027
本章知識思維導(dǎo)圖 029
第4章 Requests 模塊 030
4.1 請求方式 030
4.1.1 GET(不帶參)請求 031
4.1.2 對響應(yīng)結(jié)果進(jìn)行utf-8 編碼 031
4.1.3 爬取二進(jìn)制數(shù)據(jù) 032
4.1.4 GET(帶參)請求 033
4.1.5 POST 請求 034
4.2 復(fù)雜的網(wǎng)絡(luò)請求 035
4.2.1 添加請求頭headers 036
4.2.2 驗(yàn)證Cookies 036
4.2.3 會話請求 038
4.2.4 驗(yàn)證請求 039
4.2.5 網(wǎng)絡(luò)超時與異常 040
4.2.6 上傳文件 041
4.3 代理服務(wù) 043
4.3.1 代理的應(yīng)用 043
4.3.2 獲取免費(fèi)的代理IP 044
4.3.3 檢測代理IP 是否有效 045
本章知識思維導(dǎo)圖 047
第5章 高級網(wǎng)絡(luò)請求模塊 048
5.1 Requests-Cache 的安裝與測試 048
5.2 緩存的應(yīng)用 049
5.3 強(qiáng)大的Requests-HTML 模塊 052
5.3.1 使用Requests-HTML 實(shí)現(xiàn)網(wǎng)絡(luò)請求 052
5.3.2 數(shù)據(jù)的提取 054
5.3.3 獲取動態(tài)加載的數(shù)據(jù) 058
本章知識思維導(dǎo)圖 062
第3篇 數(shù)據(jù)解析與存儲篇
第6章 re 模塊的正則表達(dá)式 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 學(xué)網(wǎng)視頻 072
6.4.1 查找視頻頁面 072
6.4.2 分析視頻地址 074
6.4.3 實(shí)現(xiàn)視頻下載 075
本章知識思維導(dǎo)圖 077
第7章 XPath 的使用 078
7.1 XPath 概述 078
7.2 XPath 的解析操作 079
7.2.1 解析HTML 079
7.2.2 獲取所有節(jié)點(diǎn) 081
7.2.3 獲取子節(jié)點(diǎn) 083
7.2.4 獲取父節(jié)點(diǎn) 085
7.2.5 獲取文本 086
7.2.6 屬性匹配 087
7.2.7 獲取屬性 089
7.2.8 按序獲取屬性值 090
7.2.9 使用節(jié)點(diǎn)軸獲取節(jié)點(diǎn)內(nèi)容 091
7.3 案例:爬取豆瓣電影Top250 093
7.3.1 分析請求地址 093
7.3.2 分析信息位置 094
7.3.3 爬蟲代碼的實(shí)現(xiàn) 095
本章知識思維導(dǎo)圖 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 的簡單應(yīng)用 100
8.2 獲取節(jié)點(diǎn)內(nèi)容 101
8.2.1 獲取節(jié)點(diǎn)對應(yīng)的代碼 101
8.2.2 獲取節(jié)點(diǎn)屬性 103
8.2.3 獲取節(jié)點(diǎn)包含的文本內(nèi)容 104
8.2.4 嵌套獲取節(jié)點(diǎn)內(nèi)容 105
8.2.5 關(guān)聯(lián)獲取 106
8.3 調(diào)用方法獲取內(nèi)容 111
8.3.1 find_all()——獲取所有符合條件的內(nèi)容 111
8.3.2 find()——獲取第一個匹配的節(jié)點(diǎn)內(nèi)容 115
8.3.3 其他方法 116
8.4 CSS 選擇器 117
本章知識思維導(dǎo)圖 120
第9章 數(shù)據(jù)處理與文件存取 121
9.1 了解pandas 數(shù)據(jù)結(jié)構(gòu) 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 去除重復(fù)數(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
本章知識思維導(dǎo)圖 148
第4篇 技能進(jìn)階篇
第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 下載瀏覽器驅(qū)動 154
10.2.3 selenium 模塊的使用 155
10.3 Splash 的爬蟲應(yīng)用 157
10.3.1 Splash 中的HTTP API 158
10.3.2 執(zhí)行l(wèi)ua 自定義腳本 161
本章知識思維導(dǎo)圖 163
第11章 多線程爬蟲 164
11.1 進(jìn)程與線程 164
11.1.1 什么是進(jìn)程 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 使用隊(duì)列在線程間通信 170
11.4 多線程爬蟲 172
本章知識思維導(dǎo)圖 178
第12章 多進(jìn)程爬蟲 179
12.1 創(chuàng)建進(jìn)程 179
12.1.1 使用multiprocessing 模塊創(chuàng)建進(jìn)程 179
12.1.2 使用Process 子類創(chuàng)建進(jìn)程 183
12.1.3 使用進(jìn)程池Pool 創(chuàng)建進(jìn)程 184
12.2 進(jìn)程間通信 187
12.2.1 隊(duì)列簡介 188
12.2.2 多進(jìn)程隊(duì)列的使用 189
12.2.3 使用隊(duì)列在進(jìn)程間通信 191
12.3 多進(jìn)程爬蟲 192
本章知識思維導(dǎo)圖 197
第13章 爬取App 數(shù)據(jù) 198
13.1 Charles 工具的下載與安裝 198
13.2 SSL 證書的安裝 202
13.2.1 安裝PC 端證書 202
13.2.2 設(shè)置代理 206
13.2.3 配置網(wǎng)絡(luò) 207
13.2.4 安裝手機(jī)端證書 210
13.3 案例:爬取App 數(shù)據(jù) 213
本章知識思維導(dǎo)圖 215
第14章 識別驗(yàn)證碼 216
14.1 字符驗(yàn)證碼 216
14.1.1 搭建OCR 環(huán)境 216
14.1.2 下載驗(yàn)證碼圖片 218
14.1.3 識別驗(yàn)證碼 219
14.2 第三方驗(yàn)證碼識別 221
14.3 滑動拼圖驗(yàn)證碼 225
本章知識思維導(dǎo)圖 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 的基本應(yīng)用 235
15.3.1 創(chuàng)建Scrapy 項(xiàng)目 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 項(xiàng)目管道的核心方法 244
15.4.2 將信息存儲到數(shù)據(jù)庫中 245
15.5 自定義中間件 248
15.5.1 設(shè)置隨機(jī)請求頭 249
15.5.2 設(shè)置Cookies 252
15.5.3 設(shè)置代理ip 255
15.6 文件下載 257
本章知識思維導(dǎo)圖 260
第16章 Scrapy-Redis 分布式爬蟲 261
16.1 安裝Redis 數(shù)據(jù)庫 261
16.2 Scrapy-Redis 模塊 264
16.3 分布式爬取新聞數(shù)據(jù) 265
16.4 自定義分布式爬蟲 277
本章知識思維導(dǎo)圖 285