《Webbots、Spiders和Screen Scrapers 技术解析与应用实践》PDF下载

  • 购买积分:11 如何计算积分?
  • 作  者:(美)斯昆克著
  • 出 版 社:北京:机械工业出版社
  • 出版年份:2013
  • ISBN:9787111417682
  • 页数:282 页
图书介绍:Webbots是指一套可以通过追踪互联网上的关键词来预测未来的计算机程序。Spiders根据HTML的语法和格式,对读取的页面进行代码过滤,收录相关的文字内容,目标是从Web超链接、网页内容和使用日志中探寻有用的信息。本书首先介绍了网络机器人许多基础性的问题,并以此为基础,深入阐述了各种网络机器人的原理与实现方法,以及安全使用网络机器人的注意事项,并探讨了网络机器人应用场景与发展前景。全书分析透彻,富于前瞻性,为构建Web挖掘创新性应用奠定了理论和实践基础,甚至对创新想法也很有帮助。

第一部分 基础概念和技术 3

第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 cookie 19

3.3.5重定向 19

3.3.6代理名称欺诈 19

3.3.7上链管理 20

3.3.8套接字管理 20

3.4安装PHP/CURL 20

3.5 LIB_http库 21

3.5.1熟悉默认值 21

3.5.2使用LIB_http 21

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

第二部分 网络机器人项目 77

第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_codes 96

10.2.2 LIB_resolve_addresses 96

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 API 107

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和FTP 118

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电子邮件、网络机器人以及垃圾邮件 128

15.2使用SMTP和PHP发送邮件 128

15.2.1配置PHP发送邮件 128

15.2.2使用mai10函数发送电子邮件 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

第三部分 高级设计技巧 145

第17章 蜘蛛 145

17.1蜘蛛的工作原理 145

17.2蜘蛛脚本示例 146

17.3 LIB_simple_spider 149

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/CURL 163

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和cookie 177

21.3网络机器人设计中面临的cookie难题 178

21.3.1擦除临时性cookie 178

21.3.2管理多用户的cookie 178

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 AJAX 190

23.1.2怪异的JavaScript和cookie行为 190

23.1.3 Flash 190

23.2使用浏览器宏解决网页抓取难题 191

23.2.1浏览器宏的定义 191

23.2.2模拟浏览器的终极网络机器人 191

23.2.3安装和使用iMacros 191

23.2.4创建第一个宏 192

23.3结论 197

23.3.1宏的必要性 197

23.3.2其他用途 197

第24章 修改iMacros 198

24.1增强iMacros的功能 198

24.1.1不使用iMacros脚本引擎的原因 198

24.1.2创建动态宏 199

24.1.3自动装载iMacros 202

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

第四部分 拓展知识 219

第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 Tor 232

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 JavaScript 249

29.2.2非ASCⅡ内容 249

29.3设计纯数据接口 249

29.3.1 XML 249

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