`

Webbots、Spiders和Screen Scrapers:技术解析与应用实践(原书第2版)

阅读更多
《Webbots、Spiders和Screen Scrapers:技术解析与应用实践(原书第2版)》
基本信息
原书名: Webbots,Spiders,and Screen Scrapers:A Guide to Developing Internet Agents with PHP/CURL,Second Edition
原出版社: No Starch Press
作者: (美)Michael Schrenk
译者: 张磊 沈鑫
丛书名: 华章程序员书库
出版社:机械工业出版社
ISBN:9787111417682
上架时间:2013-5-8
出版日期:2013 年5月
开本:16开
页码:282
版次:2-1
所属分类:计算机 > 软件与程序设计 > 网络编程
 
内容简介
计算机书籍
  《webbots、spiders和screen scrapers:技术解析与应用实践(原书第2版)》是webbots(网络机器人)、spiders(蜘蛛)、screen scrapers(抓屏器)领域的权威著作,在国际安全领域被广泛认可,是资深网络安全专家15年工作经验的结晶。不仅全面而详细地解析了webbots、spiders和screen scrapers的技术原理和高级技巧,而且以案例的方式讲解了9种常用网络机器人的设计和开发方法,可操作性极强。除了有丰富的理论和实践内容外,本书还介绍了商业用途的思路,不厌其烦地告诫开发者如何开发出遵纪守法且不干扰网络的具有建设性的网络机器人。
   全书31章,分为4个部分:第一部分(1~7章),系统全面地介绍了与webbots、spiders、screen scrapers相关的各种概念和技术原理,是了解和使用它们必须掌握的基础知识;第二部分(8~16章),以案例的形式仔细地讲解了价格监控、图片抓取、搜索排名检测、信息聚合、ftp信息、阅读与发送电子邮件等9类常见机器人的设计与开发方法,非常具备实战指导意义;第三部分(17~25章),总结和归纳了大量的高级技巧,包括蜘蛛程序的设计方法、采购机器人和秒杀器、相关的密码学、认证方法、高级cookie管理、如何计划运行网络机器人和蜘蛛、使用浏览器宏抓取怪异的网站、修改imacros,等等;第四部分(26~31章)是拓展知识,包含如何设计隐蔽的网络机器人和蜘蛛、编写容错的网络机器人、设计网络机器人青睐的网站、消灭蜘蛛、相关的法律知识等。
目录
《webbots、spiders和screen scrapers:技术解析与应用实践(原书第2版)》
译者序
前言
第一部分 基础概念和技术
第1章 本书主要内容3
1.1 发现互联网的真正潜力3
1.2 对开发者来说3
1.2.1 网络机器人开发者是紧缺人才4
1.2.2 编写网络机器人是有趣的4
1.2.3 网络机器人利用了“建设性黑客”技术4
1.3 对企业管理者来说5
1.3.1 为业务定制互联网5
1.3.2 充分利用公众对网络机器人的经验不足5
1.3.3 事半功倍6
1.4 结论6
第2章 网络机器人项目创意7
2.1 浏览器局限性的启发7
2.1.1 聚合并过滤相关信息的网络机器人7
2.1.2 解释在线信息的网络机器人8
2.1.3 个人代理网络机器人9
.2.2 从疯狂的创意开始9
2.2.1 帮助繁忙的人解脱10
2.2.2 自动执行,节省开支10
2.2.3 保护知识产权10
2.2.4 监视机会11
2.2.5 在网站上验证访问权限11
2.2.6 创建网上剪报服务11
2.2.7 寻找未授权的wi-fi网络12
2.2.8 跟踪网站技术12
2.2.9 让互不兼容的系统通信12
2.3 结论13
第3章 下载网页14
3.1 当它们是文件,而不是网页14
3.2 用php的内置函数下载文件15
3.2.1 用fopen()和fgets()下载文件15
3.2.2 用file()函数下载文件17
3.3 php/curl库介绍18
3.3.1 多种传输协议18
3.3.2 表单提交19
3.3.3 基本认证技术19
3.3.4 cookie19
3.3.5 重定向19
3.3.6 代理名称欺诈19
3.3.7 上链管理20
3.3.8 套接字管理20
3.4 安装php/curl20
3.5 lib_http库21
3.5.1 熟悉默认值21
3.5.2 使用lib_http21
3.5.3 了解更多http标头信息24
3.5.4 检查lib_http的源代码25
3.6 结论25
第4章 基本解析技术26
4.1 内容与标签相混合26
4.2 解析格式混乱的html文件26
4.3 标准解析过程27
4.4 使用lib_parse库27
4.4.1 用分隔符分解字符串:split_string()函数27
4.4.2 提取分隔符之间的部分:return_between()函数28
4.4.3 将数据集解析到数组之中:parse_array()函数29
4.4.4 提取属性值:get_attribute()函数30
4.4.5 移除无用文本:remove()函数32
4.5 有用的php函数32
4.5.1 判断一个字符串是否在另一个字符串里面32
4.5.2 用一个字符串替换另一个字符串中的一部分33
4.5.3 解析无格式文本33
4.5.4 衡量字符串的相似度34
4.6 结论34
4.6.1 别相信编码混乱的网页34
4.6.2 小步解析35
4.6.3 不要在调试的时候渲染解析结果35
4.6.4 少用正则表达式35
第5章 使用正则表达式的高级解析技术36
5.1 模式匹配——正则表达式的关键36
5.2 php的正则表达式类型36
5.2.1 php正则表达式函数37
5.2.2 与php内置函数的相似之处38
5.3 从例子中学习模式匹配39
5.3.1 提取数字39
5.3.2 探测字符串序列39
5.3.3 字母字符匹配40
5.3.4 通配符匹配40
5.3.5 选择匹配41
5.3.6 分组和范围匹配的正则表达式41
5.4 与网络机器人开发者相关的正则表达式41
5.4.1 提取电话号码42
5.4.2 下一步学习什么45
5.5 何时使用正则表达式46
5.5.1 正则表达式的长处46
5.5.2 模式匹配用于解析网页的劣势46
5.5.3 哪个更快,正则表达式还是php的内置函数48
5.6 结论48
第6章 自动表单提交49
6.1 表单接口的反向工程50
6.2 表单处理器、数据域、表单方法和事件触发器50
6.2.1 表单处理器50
6.2.2 数据域51
6.2.3 表单方法52
6.2.4 多组件编码54
6.2.5 事件触发器54
6.3 无法预测的表单55
6.3.1 javascript能在提交之前修改表单55
6.3.2 表单html代码通常无法阅读55
6.3.3 cookie在表单里不存在,却会影响其操作55
6.4 分析表单55
6.5 结论59
6.5.1 不要暴露身份59
6.5.2 正确模拟浏览器59
6.5.3 避免表单错误60
第7章 处理大规模数据61
7.1 组织数据61
7.1.1 命名规范61
7.1.2 在结构化文件里存储数据62
7.1.3 在数据库里存储文本数据64
7.1.4 在数据库里存储图片66
7.1.5 用数据库,还是用文件系统68
7.2 减小数据规模68
7.2.1 保存图片文件的地址68
7.2.2 压缩数据68
7.2.3 移除格式信息71
7.3 生成图片的缩略图72
7.4 结论73
第二部分 网络机器人项目
第8章 价格监控网络机器人77
8.1 目标网站77
8.2 设计解析脚本78
8.3 初始化以及下载目标网页79
8.4 进一步探讨83
第9章 图片抓取网络机器人84
9.1 图片抓取网络机器人例子84
9.2 创建图片抓取网络机器人85
9.2.1 二进制安全下载过程86
9.2.2 目录结构87
9.2.3 主脚本87
9.3 进一步探讨90
9.4 结论90
第10章 链接校验网络机器人91
10.1 创建链接校验网络机器人91
10.1.1 初始化网络机器人并下载目标网页92
10.1.2 设置页面基准92
10.1.3 提取链接93
10.1.4 运行校验循环93
10.1.5 生成url完整路径93
10.1.6 下载全链接路径94
10.1.7 展示页面状态95
10.2 运行网络机器人95
10.2.1 lib_http_codes96
10.2.2 lib_resolve_addresses96
10.3 进一步探讨97
第11章 搜索排名检测网络机器人98
11.1 搜索结果页介绍99
11.2 搜索排名检测网络机器人做什么工作100
11.3 运行搜索排名检测网络机器人100
11.4 搜索排名检测网络机器人的工作原理101
11.5 搜索排名检测网络机器人脚本101
11.5.1 初始化变量102
11.5.2 开始循环102
11.5.3 获取搜索结果103
11.5.4 解析搜索结果103
11.6 结论106
11.6.1 对数据源要厚道106
11.6.2 搜索网站对待网络机器人可能会不同于浏览器106
11.6.3 爬取搜索引擎不是好主意106
11.6.4 熟悉google api107
11.7 进一步探讨107
第12章 信息聚合网络机器人108
12.1 给网络机器人选择数据源108
12.2 信息聚合网络机器人举例109
12.2.1 熟悉rss源109
12.2.2 编写信息聚合网络机器人111
12.3 给信息聚合网络机器人添加过滤机制114
12.4 进一步探讨115
第13章 ftp网络机器人116
13.1 ftp网络机器人举例116
13.2 php和ftp118
13.3 进一步探讨119
第14章 阅读电子邮件的网络机器人120
14.1 pop3协议120
14.1.1 登录到pop3邮件服务器120
14.1.2 从pop3邮件服务器上读取邮件121
14.2 用网络机器人执行pop3命令123
14.3 进一步探讨125
14.3.1 电子邮件控制的网络机器人125
14.3.2 电子邮件接口125
第15章 发送电子邮件的网络机器人127
15.1 电子邮件、网络机器人以及垃圾邮件127
15.2 使用smtp和php发送邮件128
15.2.1 配置php发送邮件128
15.2.2 使用mail()函数发送电子邮件129
15.3 编写发送电子邮件通知的网络机器人130
15.3.1 让合法的邮件不被过滤掉132
15.3.2 发送html格式的电子邮件132
15.4 进一步探讨134
15.4.1 使用回复邮件剪裁访问列表134
15.4.2 使用电子邮件作为你的网络机器人运行的通知134
15.4.3 利用无线技术134
15.4.4 编写发送短信的网络机器人135
第16章 将一个网站转变成一个函数136
16.1 编写一个函数接口136
16.1.1 定义函数接口137
16.1.2 分析目标网页137
16.1.3 使用describe_zipcode()函数140
16.2 结论141
16.2.1 资源分发142
16.2.2 使用标准接口142
16.2.3 设计定制的轻量级“web服务”142
第三部分 高级设计技巧
第17章 蜘蛛145
17.1 蜘蛛的工作原理145
17.2 蜘蛛脚本示例146
17.3 lib_simple_spider149
17.3.1 harvest_links()149
17.3.2 archive_links()149
17.3.3 get_domain()150
17.3.4 exclude_link()150
17.4 使用蜘蛛进行实验152
17.5 添加载荷152
17.6 进一步探讨153
17.6.1 在数据库中保存链接153
17.6.2 分离链接和载荷153
17.6.3 在多台计算机上分配任务153
17.6.4 管理页面请求154
第18章 采购机器人和秒杀器155
18.1 采购机器人的原理155
18.1.1 获取采购标准155
18.1.2 认证买家155
18.1.3 核对商品156
18.1.4 评估购物触发条件156
18.1.5 执行购买157
18.1.6 评估结果157
18.2 秒杀器的原理157
18.2.1 获取采购标准158
18.2.2 认证竞拍者158
18.2.3 核对拍卖商品158
18.2.4 同步时钟158
18.2.5 竞价时间159
18.2.6 提交竞价160
18.2.7 评估结果160
18.3 测试自己的网络机器人和秒杀器160
18.4 进一步探讨160
18.5 结论161
第19章 网络机器人和密码学162
19.1 设计使用加密的网络机器人162
19.1.1 ssl和php内置函数163
19.1.2 加密和php/curl163
19.2 网页加密的简要概述163
19.3 结论164
第20章 认证165
20.1 认证的概念165
20.1.1 在线认证的类型165
20.1.2 用多种方式加强认证166
20.1.3 认证和网络机器人166
20.2 示例脚本和实践页面166
20.3 基本认证167
20.4 会话认证168
20.4.1 使用cookie会话的认证169
20.4.2 使用查询会话进行认证172
20.5 结论174
第21章 高级cookie管理175
21.1 cookie的工作原理175
21.2 php/curl和cookie177
21.3 网络机器人设计中面临的cookie难题178
21.3.1 擦除临时性cookie178
21.3.2 管理多用户的cookie178
21.4 进一步探讨179
第22章 计划运行网络机器人和蜘蛛180
22.1 为网络机器人配置计划任务180
22.2 windows xp任务调度程序181
22.2.1 计划网络机器人按日运行181
22.2.2 复杂的计划182
22.3 windows 7任务调度程序184
22.4 非日历事件触发器186
22.5 结论188
22.5.1 如何决定网络机器人的最佳运行周期188
22.5.2 避免单点故障188
22.5.3 在计划中加入变化性188
第23章 使用浏览器宏抓取怪异的网站189
23.1 高效网页抓取的阻碍190
23.1.1 ajax190
23.1.2 怪异的javascript和cookie行为190
23.1.3 flash190
23.2 使用浏览器宏解决网页抓取难题191
23.2.1 浏览器宏的定义191
23.2.2 模拟浏览器的终极网络机器人191
23.2.3 安装和使用imacros191
23.2.4 创建第一个宏192
23.3 结论197
23.3.1 宏的必要性197
23.3.2 其他用途197
第24章 修改imacros198
24.1 增强imacros的功能198
24.1.1 不使用imacros脚本引擎的原因198
24.1.2 创建动态宏199
24.1.3 自动装载imacros202
24.2 进一步探讨204
第25章 部署和扩展205
25.1 一对多环境205
25.2 一对一环境206
25.3 多对多环境206
25.4 多对一环境206
25.5 扩展和拒绝服务攻击207
25.5.1 简易的网络机器人也会产生大量数据207
25.5.2 目标的低效207
25.5.3 过度扩展的弊端207
25.6 创建多个网络机器人的实例208
25.6.1 创建进程208
25.6.2 利用操作系统208
25.6.3 在多台计算机上分发任务208
25.7 管理僵尸网络209
25.8 进一步探讨215
第四部分 拓展知识
第26章 设计隐蔽的网络机器人和蜘蛛219
26.1 设计隐蔽网络机器人的原因219
26.1.1 日志文件219
26.1.2 日志监控软件222
26.2 模拟人类行为实现隐蔽222
26.2.1 善待资源222
26.2.2 在繁忙的时刻运行网络机器人222
26.2.3 在每天不同时刻运行网络机器人223
26.2.4 不要在假期和周末运行网络机器人223
26.2.5 使用随机的延迟时间223
26.3 结论223
第27章 代理226
27.1 代理的概念226
27.2 虚拟世界中的代理226
27.3 网络机器人开发者使用代理的原因226
27.3.1 使用代理实现匿名227
27.3.2 使用代理改变位置229
27.4 使用代理服务器229
27.4.1 在浏览器中使用代理229
27.4.2 通过php/curl使用代理230
27.5 代理服务器的类型230
27.5.1 公共代理230
27.5.2 tor232
27.5.3 商业代理234
27.6 结论234
27.6.1 匿名是过程,不是特性234
27.6.2 创建自己的代理服务235
第28章 编写容错的网络机器人236
28.1 网络机器人容错的类型236
28.1.1 适应url变化236
28.1.2 适应页面内容的变化240
28.1.3 适应表单的变化242
28.1.4 适应cookie管理的变化243
28.1.5 适应网络中断和网络拥堵243
28.2 错误处理器244
28.3 进一步探讨245
第29章 设计受网络机器人青睐的网站246
29.1 针对搜索引擎蜘蛛优化网页246
29.1.1 定义明确的链接246
29.1.2 谷歌轰炸和垃圾索引247
29.1.3 标题标签247
29.1.4 元标签247
29.1.5 标头标签248
29.1.6 图片的alt属性248
29.2 阻碍搜索引擎蜘蛛的网页设计技巧248
29.2.1 javascript249
29.2.2 非ascii内容249
29.3 设计纯数据接口249
29.3.1 xml249
29.3.2 轻量级数据交换251
29.3.3 简单对象访问协议253
29.3.4 表征状态转移254
29.4 结论255
第30章 消灭蜘蛛256
30.1 合理地请求256
30.1.1 创建服务协议条款257
30.1.2 使用robots.txt文件257
30.1.3 使用robots元标签258
30.2 创造障碍258
30.2.1 选择性地允许特定的网页代理259
30.2.2 使用混淆259
30.2.3 使用cookie、加密、javascript和重定向259
30.2.4 认证用户260
30.2.5 频繁升级网站260
30.2.6 在其他媒体中嵌入文本260
30.3 设置陷阱261
30.3.1 创建蜘蛛陷阱261
30.3.2 处理不速之客的方法261
30.4 结论262
第31章 远离麻烦263
31.1 尊重264
31.2 版权264
31.2.1 请善用资源264
31.2.2 不要纸上谈兵265
31.3 侵犯动产267
31.4 互联网法律268
31.5 结论269
附录a php/curl参考270
附录b 状态码277
附录c 短信网关280
图书信息来源:中国互动出版网

 

分享到:
评论

相关推荐

    Webbots、Spiders和Screen Scrapers:技术解析与应用实践

    通过阅读《Webbots、Spiders和Screen Scrapers技术解析与应用实践》,读者不仅可以掌握网络爬虫和Webbots的基本技术,还能了解到它们在现实世界中的应用和挑战,对于想要在这一领域深入学习和工作的专业人士来说,是...

    WEBBOTS、SPIDERS和SCREEN SCRAPERS技术解析与应用实践源码

    在"WEBBOTS、SPIDERS和SCREEN SCRAPERS技术解析与应用实践源码"的压缩包中,可能包含了实现上述功能的各种编程语言(如Python、Java、Ruby)的示例代码和库文件。这些资源可能包括爬虫框架、网页解析模块、数据存储...

    Webbots、Spiders和Screen Scrappers技术解析与应用实践_原书第2版_original

    Webbots、Spiders和Screen Scrappers技术解析与应用实践_原书第2版_original

    Webbots, Spiders, and Screen Scrapers

    Epub格式。 Why you should use web bots, security issues, how to authenticate a bot with password protected sites, writing search engine crawlers, parsing HTML, how to handle cookies, HTTP headers, ...

    晨星spiders.zip

    本文将深入探讨如何使用Python爬虫技术,针对晨星网的基金数据进行爬取,并以"spiders.zip"这个项目为例,讲解具体的实现步骤与涉及的技术点。 首先,我们要了解晨星网的基金数据爬取的核心技术:Python的requests...

    豆瓣读书的爬虫.zip

    综上所述,这个“豆瓣读书的爬虫.zip”项目涉及了Python爬虫的基本流程和技术,对于想要学习网络爬虫和数据分析的人来说,这是一个很好的实践案例。通过理解和运行这个项目,你可以深入学习如何利用Python进行网络...

    spiders2.rar(jsp,servlet实现音乐下载网页)

    【标题】"spiders2.rar" 是一个包含使用jsp(JavaServer Pages)和servlet技术实现的音乐下载网页项目的压缩包。这个项目的核心目标是创建一个用户可以通过网页直接下载音乐的平台。 【描述】提到,这是一个由作者...

    spiders4cxq.zip

    在学习过程中,记得结合"spiders4cxq.zip"中的资源,它们可能包含了代码示例、练习题和解答,这些都将加深你对知识的理解和应用。同时,不断实践和调试代码,是提升技能的关键。只有通过不断的动手实践,才能真正...

    Python 网络爬虫实例-Spiders.zip

    本实例“Spiders.zip”提供了一个关于Python爬虫项目的详细示例,名为“Spiders-master”,这通常包含了一系列的Python脚本、配置文件以及可能的数据存储结构。下面将详细探讨Python网络爬虫的基础知识、常用库和...

    spiders-training:Python 爬虫练手项目

    【Python爬虫练手项目】是一个专为学习和实践Python爬虫技术而设计的实践项目。这个项目旨在帮助初学者和有一定基础的开发者巩固和提升他们在网络数据抓取方面的技能。通过参与此项目,你可以了解到Python爬虫的基本...

    Python图书馆图书爬虫窃书系统源码.zip

    《Python图书馆图书爬虫窃书...总之,“Python图书馆图书爬虫窃书系统源码”是一个学习和实践Python爬虫技术的好材料,通过深入研究,可以提升我们的网络数据抓取能力,为数据分析、信息挖掘等领域的工作打下坚实基础。

    python爬虫开发与项目实战书籍配套源码和说明.zip

    本压缩包包含了书籍"Python爬虫开发与项目实战"的配套源码和相关说明,旨在帮助读者更好地理解和应用书中所讲述的理论知识。以下是基于这些内容展开的知识点详解: 1. **Python基础**: Python是一种广泛用于爬虫...

    spiders_爬取_爬取微博_爬虫微博_微博爬虫_

    在IT行业中,网络爬虫(或称为Web Spider)是一种自动浏览互联网并提取信息的程序。...综上所述,构建微博爬虫涉及的技术面广泛,需要不断学习和实践。在开发过程中,要注重数据安全和合规性,以确保项目顺利进行。

    拼多多的爬虫解析.zip

    总的来说,“拼多多的爬虫解析”项目涵盖了网络爬虫的基本流程,包括数据抓取、解析、存储和分析,是学习和实践Python爬虫技术的好例子。通过这个项目,你可以深入理解爬虫的工作原理,提高自动化处理网络数据的能力...

    scrapy爬虫爬取应用宝上的内容并写入数据库

    Scrapy是一个强大的Python爬虫框架,它为开发者提供了构建网络爬虫所需的各种工具和组件,使得数据抓取和处理过程更为高效和便捷。本项目是一个简单的示例,演示了如何使用Scrapy爬取应用宝(腾讯的应用市场)上的...

    scrapy1.1 帮助文档

    - **基准测试(Benchmarking)**:评估爬虫性能的方法和技术。 - **任务管理:暂停与恢复爬取(Jobs: pausing and resuming crawls)**:实现爬虫任务的持久化,便于后续恢复执行。 #### 五、扩展Scrapy - **架构概览...

    Spiders.js:通过actor可以轻松实现JavaScript中的并行和分布式编程

    基本上,Web Worker和子进程是可用于并行化JavaScript中的应用程序的唯一并行构件。 面对现实吧,并行编程非常困难,并且与Web Worker或Node.js的子进程API交往并没有使它变得更容易。 Spiders.js基于通信事件循环...

    Spiders:python爬虫集合

    本压缩包"Spiders:python爬虫集合"包含了一些Python爬虫的实例,旨在帮助初学者和开发者了解如何构建和优化爬虫。 首先,我们来看"baike"项目,这是一个针对百度百科的爬虫。百度百科是中文互联网上最大的百科全书...

    spiders.zip

    标题“spiders.zip”暗示了这是一个与网络爬虫(spiders)相关的压缩文件,很可能包含一个Python项目,用于抓取和处理网页数据。标签“adsl”可能指的是这个项目涉及到了ADSL(Asymmetric Digital Subscriber Line)...

    Python-基于scrapyredis的分布式爬虫爬取JD图书当当图书和Amazon图书

    **Python-基于scrapyredis的分布式爬虫爬取JD图书、当当图书和Amazon图书** 在信息技术领域,网络爬虫是获取大量数据的重要工具...同时,项目源代码(book_spider-master)可作为学习和实践分布式爬虫的优秀参考资料。

Global site tag (gtag.js) - Google Analytics