新書推薦:

《
(海洋命运共同体构建 理论与实践)构建中国——东盟“蓝色伙伴关系”研究
》
售價:HK$
107.8

《
匠艺与生活:海南黎族的工艺文化
》
售價:HK$
107.8

《
我本富足
》
售價:HK$
74.8

《
英国教育史研究丛书——延续与新变:英国斯图亚特时期贵族教育研究
》
售價:HK$
108.9

《
更易上手!钢琴弹唱经典老歌(五线谱版)
》
售價:HK$
54.8

《
哲学叙事:中国与西方
》
售價:HK$
107.8

《
一人商业模式 创富新路径个人经济自由创业变现方法书
》
售價:HK$
54.8

《
经典与想象:中国古代传说新解
》
售價:HK$
85.8
|
編輯推薦: |
《Java网络爬虫精解与实践》是一本旨在帮助读者使用Java开发高效网络爬虫系统的实用指南。深入剖析开源爬虫框架,掌握Web数据采集、解析和提取,验证码生成和识别,以及分布式网络爬虫架构设计等关键知识。覆盖手机APP通信抓包、逆向分析等技术,掌握基于手机APP的数据采集。最后,搭建完整的招聘领域网络爬虫系统,自动解析招聘信息,与搜索和推荐系统集成。《Java网络爬虫精解与实践》实用性强,提供丰富示例代码,适合IT从业者、开发人员、培训机构及教学使用。无论您是深入学习网络爬虫或初学者,《Java网络爬虫精解与实践》将带您踏上精彩的学习之旅,提升数据爬取和处理能力。
|
內容簡介: |
《Java网络爬虫精解与实践》全面而系统地介绍与网络爬虫程序相关的理论知识,并包含大量的实践操作案例。
《Java网络爬虫精解与实践》共分为 8 章。第 1 章以自动化框架为基础,介绍网络爬虫程序的入门开发实践。第 2 章深入讲解网页内容的处理、解析技术和数据提取方法。第 3 章讨论验证码识别技术以及如何有效绕过验证码的策略。第 4 章涉及网络抓包技术及其对抗策略。第 5 章深入探讨 JavaScript 代码的混淆技术与逆向分析方法。第 6 章专注于移动端应用程序的数据爬取技术及相关逆向分析技术。第 7 章介绍构建分布式网络爬虫系统所需的关键技术。第 8 章通过实战案例,展示分布式网络爬虫系统设计与实现的思路。通过学习本书,读者将显著提升网络爬虫系统的设计与实现能力,并增强对网页代码及移动端应用程序代码的逆向分析水平。
《Java网络爬虫精解与实践》的内容不仅涵盖理论知识,还注重实践操作,适合广大网络爬虫程序开发爱好者阅读。同时,《Java网络爬虫精解与实践》也适合作为培训机构和学校的教学参考用书。
|
關於作者: |
张 凯
中国科学院大学软件工程专业硕士,研究方向为操作系统虚拟化,毕业后先后供职于微策略、新浪微博,目前供职于粉笔科技,任技术总监职务,担任爬虫平台、内容审核平台等多个重要系统技术负责人。对网络爬虫、高可用架构设计和文本分类领域有着深入研究。
|
目錄:
|
第 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
|
內容試閱:
|
随着互联网经济的发展和大数据时代的到来,数据被人们喻为“新时代的石油”,而爬虫
系统则是开采“新时代石油”的重要工具。
尽管爬虫系统有着悠久的历史,但随着时间的推移和技术的不断更新迭代,很多古老的爬
虫技术已无法满足当前的爬取数据需求。
本书主要是笔者学习过的知识和相关实践经验的整理与总结。希望本书能够为每一位对爬
虫领域感兴趣的读者提供一套系统的知识体系和操作指南,并为读者在学习和职业生涯中提供
帮助。
本书内容
本书分为 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 月于北京
|
|