Java網絡爬蟲精解與實踐(簡體書)
跑者都該懂的跑步關鍵數據:透過跑錶解析自己的跑力,突破瓶頸,進行有效率的科學化訓練(電子書)

TOP
0
0
結帳前領券,購書好優惠
Java網絡爬蟲精解與實踐(簡體書)
滿額折

Java網絡爬蟲精解與實踐(簡體書)

商品資訊

人民幣定價:89 元
定價
:NT$ 534 元
優惠價
87465
庫存:4
下單可得紅利積點:13 點
商品簡介
作者簡介
名人/編輯推薦
目次

商品簡介

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

作者簡介

張 凱
中國科學院大學軟件工程專業碩士,研究方向為操作系統虛擬化,畢業後先後供職於微策略、新浪微博,目前供職於粉筆科技,任技術總監職務,擔任爬蟲平臺、內容審核平臺等多個重要系統技術負責人。對網絡爬蟲、高可用架構設計和文本分類領域有著深入研究。

名人/編輯推薦

《Java網絡爬蟲精解與實踐》是一本旨在幫助讀者使用Java開發高效網絡爬蟲系統的實用指南。深入剖析開源爬蟲框架,掌握Web數據采集、解析和提取,驗證碼生成和識別,以及分布式網絡爬蟲架構設計等關鍵知識。覆蓋手機APP通信抓包、逆向分析等技術,掌握基於手機APP的數據采集。最後,搭建完整的招聘領域網絡爬蟲系統,自動解析招聘信息,與搜索和推薦系統集成。《Java網絡爬蟲精解與實踐》實用性強,提供豐富示例代碼,適合IT從業者、開發人員、培訓機構及教學使用。無論您是深入學習網絡爬蟲或初學者,《Java網絡爬蟲精解與實踐》將帶您踏上精彩的學習之旅,提升數據爬取和處理能力。

隨著互聯網經濟的發展和大數據時代的到來,數據被人們喻為“新時代的石油”,而爬蟲
系統則是開采“新時代石油”的重要工具。
盡管爬蟲系統有著悠久的歷史,但隨著時間的推移和技術的不斷更新迭代,很多古老的爬
蟲技術已無法滿足當前的爬取數據需求。
本書主要是筆者學習過的知識和相關實踐經驗的整理與總結。希望本書能夠為每一位對爬
蟲領域感興趣的讀者提供一套系統的知識體系和操作指南,並為讀者在學習和職業生涯中提供
幫助。
本書內容
本書分為 8 章,每章內容概述如下:
第 1 章介紹 Selenium 框架的工作原理,並以 Selenium 框架為基礎,展示了一些入門級網
絡爬蟲功能示例,為讀者構建基礎的網絡爬蟲系統知識框架。
第 2 章講解網頁內容解析與提取的幾種關鍵技術,這些技術對數據清洗至關重要。通過學
習本章內容,讀者將掌握多種網頁內容解析與提取技術,並能夠合理使用這些技術以顯著提升
數據處理效率。
第 3 章介紹驗證碼生成技術與驗證碼識別技術的原理與實現。本章內容不僅為讀者在驗證
碼自動處理方面提供了指導思路,還為讀者開發其他圖像識別和處理需求奠定了基礎。
第 4 章介紹網絡抓包與相關對抗技術。通過學習本章內容,讀者可以更加靈活地應用網絡
抓包工具,並掌握 SSL Pinning 技術的實現原理和相應對抗技術。
第 5 章講解常見的 JavaScript 代碼保護技術、JavaScript 代碼混淆的實現原理以及 JavaScript
Hook 技術等。最後,通過兩道 CTF 挑戰題目,向讀者展示如何運用前述的基礎知識來解決實
際問題。
第 6 章介紹 App 數據爬取與逆向分析技術各個方面的內容,包括利用 Appium 爬取 App 數
據、Android 應用程序靜態分析和動態分析、二進制文件逆向分析以及加殼脫殼技術的實現原
理等。最後,通過 App 逆向分析實戰,為讀者展示相關理論知識的應用。
第 7 章深入探討構建高效分布式爬蟲系統的關鍵技術,涵蓋從架構設計到具體技術細節的
多個方面。通過學習本章內容,讀者將掌握設計和實現一個高效、可擴展的分布式爬蟲系統所
需的關鍵技術。
第 8 章介紹構建高效可靠的分布式爬蟲系統的全過程,從需求分析到系統整體架構設計,
再到各個模塊和底層存儲設計。通過學習本章內容,讀者將對分布式爬蟲系統的整體設計和各
個模塊的詳細設計有更深入的理解和體會。
II Java 網絡爬蟲精解與實踐
資源下載
本書提供源代碼,讀者可掃描以下二維碼進行下載:
寫書是一項需要付出巨大努力的工作。筆者雖親自驗證了書中每個實驗的結果,然而,由
於知識、表達和時間等限制,書中可能存在不足之處,懇請讀者不吝賜教。對於本書內容的疑
問和反饋,讀者可以寫郵件發送到 booksaga@126.com,我會盡力為讀者提供滿意的回復。
本書的完成不僅凝聚了筆者的心血,也離不開朋友和家人的支持。在此,特別感謝卞誠君
老師的邀請和指導,家人的理解和支持,祝他們在今後的歲月中平安健康。最後,還要感謝筆
者所在的公司“粉筆科技”提供的展示自己能力的平臺和機會。
張凱
2024 年 8 月於北京

目次

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

購物須知

大陸出版品因裝訂品質及貨運條件與台灣出版品落差甚大,除封面破損、內頁脫落等較嚴重的狀態,其餘商品將正常出貨。

特別提醒:部分書籍附贈之內容(如音頻mp3或影片dvd等)已無實體光碟提供,需以QR CODE 連結至當地網站註冊“並通過驗證程序”,方可下載使用。

無現貨庫存之簡體書,將向海外調貨:
海外有庫存之書籍,等候約45個工作天;
海外無庫存之書籍,平均作業時間約60個工作天,然不保證確定可調到貨,尚請見諒。

為了保護您的權益,「三民網路書店」提供會員七日商品鑑賞期(收到商品為起始日)。

若要辦理退貨,請在商品鑑賞期內寄回,且商品必須是全新狀態與完整包裝(商品、附件、發票、隨貨贈品等)否則恕不接受退貨。

優惠價:87 465
庫存:4

暢銷榜

客服中心

收藏

會員專區