HTTP权威指南-9-10:Web爬虫与HTTP协议演进
Executive Summary
核心观点(金字塔原理)
结论先行: Web机器人是互联网信息采集的核心技术,但需要遵循robots.txt规范并采用科学的爬行策略避免对目标服务器造成危害;HTTP-NG旨在解决当前HTTP协议的复杂性、扩展性和性能问题。
支撑论点:
- 爬虫需要处理环路检测、URL规范化、广度优先遍历等核心技术挑战
- robots.txt和HTML meta标签提供了网站控制机器人访问的标准机制
- HTTP协议存在复杂性、扩展性、性能和传输依赖性四大问题,HTTP-NG通过模块化增强来解决
SWOT 分析
| 维度 | 分析 |
|---|---|
| S 优势 | 树和散列表加速URL查找;有损存在位图减小存储空间;检查点机制防止程序崩溃丢失数据 |
| W 劣势 | 失控机器人可能造成拒绝服务;动态虚拟Web空间导致无限循环;爬虫行为不当可能引发法律诉讼 |
| O 机会 | 条件请求减少不必要的数据传输;内容指纹和模式检测提升爬取效率 |
| T 威胁 | 爬虫阻止真实用户访问可作为法律诉讼理由;恶意爬虫获取敏感数据 |
适用场景
- 搜索引擎爬虫系统设计与开发
- 网站管理员配置robots.txt控制爬虫访问
- 理解HTTP协议演进方向进行技术选型
第九章 Web机器人
爬虫及爬行方式
- 从哪儿开始: 根集
- 链接的提取以及相对链接的标准化
- 避免环路出现
- 循环与复制
⚠️ 如果爬虫不断地获取相同的页面时,并且爬虫与服务器连接良好,它就可能会阻止其他真实用户的访问,这种拒绝服务是可以作为法律诉讼理由的。
- 面包屑留下的痕迹;大规模Web爬虫对其访问地址进行管理时使用以下相关技术点:
- 树和散列表(加速URL查找)
- 有损的存在位图(减小空间)
- 检查点(将已访问URL列表存在硬盘上,防止机器人程序崩溃)
- 分类
- 别名与机器人环路
- 规范化URL
- 如果没有指定端口的话,就向主机名中添加 ‘80’
- 将所有转义符 %xx 都转换成等价字符
- 删除 # 标签
- 文件系统连接环路 ‘/’
- 动态虚拟Web空间
- 避免循环和重复
- 规范化URL
- 广度优先的爬行
- 节流
- 限制URL的大小
- URL/站点黑名单
- 模式检测
- 内容指纹
- 人工监视
机器人的HTTP
- 识别请求首部
- 虚拟主机,实现机器人要支持Host首部
- 条件请求
- 对响应的处理;需要识别比如状态码,实体等
- User-agent导向
行为不当的机器人
- 失控机器人
- 实效的URL
- 很长的错误URL
- 爱打听的机器人
- 动态网关访问
拒绝机器人访问
- 拒绝机器人访问标准; Dissallow/Allow
- Web站点和robots.txt文件
- User-agent:
- Dissallow
- Allow
- 缓存和robots.txt的过期
- HTML的robot-control元标签
搜索引擎
第十章 HTTP-NG 下一代系统
HTTP发展中存在的问题
- 复杂性
- 扩展性
- 性能
- 传输依赖性