注冊 | 登錄讀書好,好讀書,讀好書!
讀書網(wǎng)-DuShu.com
當(dāng)前位置: 首頁出版圖書科學(xué)技術(shù)計算機/網(wǎng)絡(luò)軟件與程序設(shè)計Java網(wǎng)絡(luò)爬蟲精解與實踐

Java網(wǎng)絡(luò)爬蟲精解與實踐

Java網(wǎng)絡(luò)爬蟲精解與實踐

定 價:¥89.00

作 者: 張凱
出版社: 清華大學(xué)出版社
叢編項:
標(biāo) 簽: 暫缺

ISBN: 9787302674849 出版時間: 2024-11-01 包裝: 平裝-膠訂
開本: 16開 頁數(shù): 字?jǐn)?shù):  

內(nèi)容簡介

  《Java網(wǎng)絡(luò)爬蟲精解與實踐》全面而系統(tǒng)地介紹與網(wǎng)絡(luò)爬蟲程序相關(guān)的理論知識,并包含大量的實踐操作案例?!禞ava網(wǎng)絡(luò)爬蟲精解與實踐》共分為 8 章。第 1 章以自動化框架為基礎(chǔ),介紹網(wǎng)絡(luò)爬蟲程序的入門開發(fā)實踐。第 2 章深入講解網(wǎng)頁內(nèi)容的處理、解析技術(shù)和數(shù)據(jù)提取方法。第 3 章討論驗證碼識別技術(shù)以及如何有效繞過驗證碼的策略。第 4 章涉及網(wǎng)絡(luò)抓包技術(shù)及其對抗策略。第 5 章深入探討 JavaScript 代碼的混淆技術(shù)與逆向分析方法。第 6 章專注于移動端應(yīng)用程序的數(shù)據(jù)爬取技術(shù)及相關(guān)逆向分析技術(shù)。第 7 章介紹構(gòu)建分布式網(wǎng)絡(luò)爬蟲系統(tǒng)所需的關(guān)鍵技術(shù)。第 8 章通過實戰(zhàn)案例,展示分布式網(wǎng)絡(luò)爬蟲系統(tǒng)設(shè)計與實現(xiàn)的思路。通過學(xué)習(xí)本書,讀者將顯著提升網(wǎng)絡(luò)爬蟲系統(tǒng)的設(shè)計與實現(xiàn)能力,并增強對網(wǎng)頁代碼及移動端應(yīng)用程序代碼的逆向分析水平。《Java網(wǎng)絡(luò)爬蟲精解與實踐》的內(nèi)容不僅涵蓋理論知識,還注重實踐操作,適合廣大網(wǎng)絡(luò)爬蟲程序開發(fā)愛好者閱讀。同時,《Java網(wǎng)絡(luò)爬蟲精解與實踐》也適合作為培訓(xùn)機構(gòu)和學(xué)校的教學(xué)參考用書。

作者簡介

  張 凱中國科學(xué)院大學(xué)軟件工程專業(yè)碩士,研究方向為操作系統(tǒng)虛擬化,畢業(yè)后先后供職于微策略、新浪微博,目前供職于粉筆科技,任技術(shù)總監(jiān)職務(wù),擔(dān)任爬蟲平臺、內(nèi)容審核平臺等多個重要系統(tǒng)技術(shù)負(fù)責(zé)人。對網(wǎng)絡(luò)爬蟲、高可用架構(gòu)設(shè)計和文本分類領(lǐng)域有著深入研究。

圖書目錄

第 1 章 網(wǎng)絡(luò)爬蟲開發(fā)入門實踐 1
1.1 Java 網(wǎng)絡(luò)爬蟲框架概覽1
1.2 搭建開發(fā)環(huán)境5
1.2.1 搭建 Java 開發(fā)環(huán)境5
1.2.2 搭建 Selenium 開發(fā)環(huán)境6
1.3 簡單 Web 爬蟲程序示例7
1.3.1 獲取網(wǎng)頁內(nèi)容并打印7
1.3.2 利用 XPath 獲取指定元素8
1.3.3 單擊搜索按鈕9
1.3.4 獲取 iframe 元素中的數(shù)據(jù) 9
1.3.5 使用更加優(yōu)雅的等待方式10
1.3.6 實現(xiàn)屏幕截圖12
1.3.7 執(zhí)行 JavaScript 腳本12
1.4 WebDriver 選項配置3
1.4.1 瀏覽器通用選項配置13
1.4.2 Chrome 瀏覽器特定選項配置 14
1.4.3 Chrome DevTools Protocol14
1.5 BrowserMob Proxy 18
1.6 其他主流 Web 自動化測試框架19
1.6.1 Puppeteer20
1.6.2 Playwright20
1.7 本章小結(jié)21
1.8 本章練習(xí)21
第 2 章 網(wǎng)頁內(nèi)容解析與提取 24
2.1 Selenium 元素定位器24
2.2 基于正則表達式的內(nèi)容解析與提取27
2.2.1 正則表達式的基礎(chǔ)語法27
2.2.2 正則表達式的高級應(yīng)用技巧29
2.2.3 正則表達式的應(yīng)用場景31
2.3 基于 JsonPath 的內(nèi)容解析與提取34
2.4 本章小結(jié)36
2.5 本章練習(xí)36
 IV Java 網(wǎng)絡(luò)爬蟲精解與實踐
第 3 章 驗證碼繞過與識別 38
3.1 驗證碼介紹38
3.1.1 基于文本識別的驗證碼39
3.1.2 基于圖片識別的驗證碼39
3.1.3 基于語音識別的驗證碼40
3.1.4 基于行為識別的智能驗證碼40
3.2 避免 CAPTCHA 驗證碼觸發(fā) 40
3.3 CAPTCHA 驗證碼生成 42
3.3.1 文本驗證碼的生成42
3.3.2 滑塊驗證碼的生成43
3.3.3 點選驗證碼的生成45
3.4 CAPTCHA 驗證碼識別 47
3.4.1 文本驗證碼識別方案 1 47
3.4.2 文本驗證碼識別方案 2 52
3.4.3 滑塊驗證碼的識別56
3.4.4 點選驗證碼的識別59
3.5 本章小結(jié)65
3.6 本章練習(xí)66
第 4 章 網(wǎng)絡(luò)抓包與對抗 67
4.1 Fiddler 67
4.1.1 Fiddler 的安裝配置與基礎(chǔ)功能使用 67
4.1.2 Fiddler 的高級特性 70
4.2 Charles73
4.3 Wireshark 75
4.4 SSL Pinning 保護機制下的網(wǎng)絡(luò)數(shù)據(jù)抓包78
4.4.1 配置自定義 CA 證書 79
4.4.2 添加抓包軟件證書到系統(tǒng)信任的 CA 證書列表 82
4.4.3 使用 Hook 技術(shù)84
4.5 JustTrustMe 的工作原理 86
4.5.1 SSL Pinning 機制的實現(xiàn)86
4.5.2 JustTrustMe 模塊 Hook 操作的實現(xiàn)原理89
4.6 本章小結(jié)90
4.7 本章練習(xí)91
第 5 章 JavaScript 逆向分析技術(shù) 92
5.1 常見的反爬蟲策略及其應(yīng)對方案92
5.1.1 基于訪問頻率的檢查與訪問限制92
5.1.2 基于請求參數(shù)和請求頭信息的反爬蟲技術(shù)94
5.1.3 基于蜜罐機制的反爬蟲技術(shù)94
5.1.4 隱藏網(wǎng)頁的跳轉(zhuǎn)鏈接95
5.2 瀏覽器指紋識別與修復(fù)96
5.2.1 瀏覽器指紋識別的工作原理96
5.2.2 瀏覽器指紋泄露97
5.2.3 瀏覽器指紋泄露修復(fù)98
5.3 JavaScript 代碼保護技術(shù)98
5.3.1 JavaScript 代碼反調(diào)試技術(shù) 99
5.3.2 基于完整性檢測的代碼保護技術(shù)106
5.3.3 限制 JavaScript 代碼執(zhí)行環(huán)境111
5.3.4 JavaScript 代碼混淆技術(shù) 111
5.4 JavaScript 抽象語法樹122
5.4.1 抽象語法樹的結(jié)構(gòu)123
5.4.2 抽象語法樹的生成過程124
5.4.3 操作抽象語法樹126
5.4.4 操作抽象語法樹反混淆基礎(chǔ)實踐131
5.5 JavaScript Hook 技術(shù) 137
5.6 JavaScript 逆向工程實踐143
5.6.1 JavaScript 反混淆實戰(zhàn) 143
5.6.2 JavaScript Hook 技術(shù)實戰(zhàn) 156
5.7 本章小結(jié)160
5.8 本章練習(xí)161
第 6 章 App 數(shù)據(jù)爬取與逆向分析 162
6.1 基于抓包分析的 App 數(shù)據(jù)爬取 162
6.2 基于 Appium 自動化框架的 App 數(shù)據(jù)采集163
6.2.1 Appium 簡介 163
6.2.2 Appium 環(huán)境搭建 164
6.2.3 Appium 2.x 和 Appium 1.x166
6.2.4 移動端 Web 爬蟲開發(fā)實踐168
6.2.5 移動端 Native App 爬蟲開發(fā)實踐 171
6.2.6 移動端 Hybrid App 爬蟲開發(fā)實踐173
6.2.7 Appium 開發(fā)環(huán)境的常見錯誤與處理技巧 175
6.3 Android 應(yīng)用程序靜態(tài)分析 177
6.3.1 Android 應(yīng)用程序基本結(jié)構(gòu)剖析177
6.3.2 Android 應(yīng)用程序構(gòu)建過程180
6.3.3 Smali 代碼分析182
6.4 Android 應(yīng)用程序動態(tài)分析 188
6.4.1 向 Smali 代碼中添加 debug 日志 189
6.4.2 利用 Frida 框架進行逆向動態(tài)分析191
6.5 二進制文件逆向分析207
6.5.1 利用 objdump 逆向分析207
6.5.2 利用 IDA 進行逆向靜態(tài)分析208
6.5.3 利用 IDA 進行動態(tài)逆向分析210
6.6 加殼與脫殼技術(shù)213
6.6.1 相關(guān)基礎(chǔ)知識214
6.6.2 加殼技術(shù)實現(xiàn)原理215
6.6.3 脫殼技術(shù)實現(xiàn)原理217
6.7 App 逆向分析實戰(zhàn)一221
6.8 App 逆向分析實戰(zhàn)二225
6.9 本章小結(jié)228
6.10 本章練習(xí) 228
第 7 章 分布式爬蟲系統(tǒng)關(guān)鍵技術(shù) 229
7.1 常用的分布式架構(gòu)模式229
7.1.1 主從模式229
7.1.2 自治模式230
7.2 任務(wù)調(diào)度策略231
7.2.1 基于數(shù)據(jù)分區(qū)的調(diào)度策略231
7.2.2 基于資源感知的調(diào)度策略234
7.2.3 基于優(yōu)先級的調(diào)度策略235
7.2.4 基于自定義規(guī)則的調(diào)度策略235
7.3 任務(wù)調(diào)度器236
7.3.1 Quartz236
7.3.2 ElasticJob 238
7.3.3 XXL-JOB 239
7.4 分布式消息隊列240
7.4.1 應(yīng)用場景241
7.4.2 分布式消息隊列的類型241
7.5 服務(wù)注冊與發(fā)現(xiàn)242
服務(wù)注冊與發(fā)現(xiàn)架構(gòu)類型242
7.6 完全重復(fù)內(nèi)容檢測245
7.6.1 布隆過濾器245
7.6.2 基于哈希指紋的重復(fù)性檢測247
7.7 近似重復(fù)內(nèi)容檢測248
7.7.1 基于詞特征的文本相似度計算算法248
7.7.2 基于深度學(xué)習(xí)的文本相似度計算算法249
7.7.3 近似最近鄰算法250
7.8 本章小結(jié)253
7.9 本章練習(xí)253
第 8 章 分布式爬蟲系統(tǒng)實戰(zhàn) 254
8.1 需求分析254
8.1.1 功能需求分析254
8.1.2 非功能需求分析255
8.2 系統(tǒng)設(shè)計與實現(xiàn)255
8.2.1 總體設(shè)計256
8.2.2 爬取任務(wù)調(diào)度模塊257
8.2.3 反爬蟲對抗組件259
8.2.4 系統(tǒng)監(jiān)控模塊261
8.2.5 重復(fù)內(nèi)容過濾模塊263
8.2.6 內(nèi)容相關(guān)性識別模塊271
8.2.7 爬取任務(wù)執(zhí)行模塊273
8.2.8 系統(tǒng)底層存儲設(shè)計279
8.3 本章小結(jié)281
8.4 本章練習(xí)281

本目錄推薦

掃描二維碼
Copyright ? 讀書網(wǎng) www.stefanvlieger.com 2005-2020, All Rights Reserved.
鄂ICP備15019699號 鄂公網(wǎng)安備 42010302001612號