《HTTP权威指南》——Web机器人(爬虫)

Web机器人: 在无需人类干预的条件下,能够自动进行一系列Web事务处理的软件程序。

爬虫 及 爬行方式

**爬虫:**Web爬虫其实就是一个Web机器人,爬虫会递归遍历各种信息性站点。
爬行方式: 递归遍历,首先抓取第一个页面,提取有用的内容; 然后又递归地遍历第一个页面上的所有超链接。

爬虫的设计

在设计Web爬虫时,需要注意以下几个方面
+ 根集——爬虫的起点:
爬虫开始爬行时,要先有起点。要从足够多不同的站点中选取URL,尽可能确保爬虫能够抓取到用户感兴趣的页面。
+ 链接的提取:
爬虫爬行时,会不停地解析HTML页面。爬虫要对每个HTML页面上的URL链接进行分析,并维护(具有一定格式的)页面列表。
+ 避免环路:
爬虫在Web上爬行时需要避免环路。因此可能需要记录已经爬过的页面。 爬虫爬过的页面可能是数以亿计的,因此记录爬过哪些页面并不是一件容易的事。许多Web爬虫使用了复杂的数据结构和技术来记录爬过的页面,
+ 规范化URL:
如果URL不够规范,页面会存在别名。因此在记录爬过的页面时,应该把URL规范化。
+ 动态虚拟的Web空间:
开发者可能设计一些应用程序来迷惑爬虫。当Web爬虫抓取页面时,Web服务器将其引导至一些故意设计的应用程序,这些应用程序能够不断的构建虚拟页面,且每个页面的URL不同。

机器人的HTTP

Web机器人 和 其他的HTTP客户端程序没有明显的区别,也需要准售HTTP规范。

1. 识别请求首部

Web爬虫 的实现者 最好能在请求中使用一下基本识别首部
+ User-Agent: 将发起请求的Web名字告知服务器
+ From: 提供机器人的用户/管理者的E-mail地址
+ Referer:提供包含了当前请求URL的文档的URL

2. 虚拟主机

机器人的实现者需要支持Host首部。

3. 条件请求

Web机器人最好支持条件HTTP请求,这样在服务器上的文档没有发生更新时,就不需要重新下载文档。

4. 对响应的处理

爬虫的主要目的在于抓取HTML页面中的内容,因此对响应的处理比较简单。

User-Agent导向

站点管理这应该设计服务Web爬虫的程序

其他主题

拒绝Web机器人的访问 —— robots.txt

为了对Web服务器上的文档进行访问控制,人们提出了自愿约束技术。即使就是在服务器的根目录放置一个根据存储访问控制信息的文件——robots.txt
robots.txt指出Web机器人可以访问服务器的哪些部分、不能访问哪些部分。
在Web机器人访问Web服务器时,首先应该先尝试获取该服务上的robots.txt。以便知晓该服务器上的文件的访问控制权限。

行为不当的机器人

有一些Web机器人可能不遵守规范实现,下面列举了一些机器人可能犯的错误以及它所引发的后果
+ 失控机器人: 比如Web机器人由于不良设计,陷入了环路,就可能极大地增加Web服务器的负载,影响Web服务器的性能。
+ 失效的URL: Web机器人可能冲一些老的页面上提取出了失效的URL,频繁访问失效的URL会在Web服务器上产生大量的错误log
+ 很长的URL: 环路和编程错误会导致机器人请求很长的、无意义的URL
+ 爱打听的机器人:有一些机器人可能会访问用户的私有数据,侵犯数据拥有者权益
+ 动态网关访问:机器人可能获取网关应用程序的URL,计算开销很大。

搜索引擎

搜索引擎是使用最广泛的Web机器人。搜索进取通过爬取页面,建立索引, 能够帮助用户快速搜索相关信息。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值