思考:关于搜索引擎抓取网页的几个技术问题

来源:互联网 发布:zk 集群通讯端口 编辑:程序博客网 时间:2024/05/22 13:31

找到无法索引的页面


1.半年为单位,GA导出去重后的URL对比蜘蛛访问URL


2.数据库导出URL,对比蜘蛛访问URL


3.遵照robots协议用工具爬出的URL,对比蜘蛛访问的URL,对比不遵照robots协议爬出的URL一些维度。




如何通过利用Cache Control Headers来改善网页爬取效率?


错误做法示例:


1.expires:表示缓存失效时间,允许客户端在这个时间之前不去检查(发请求)。


2.Cache-control:网页的缓存是由HTTP消息头中的“Cache-control”来控制的,常见的取值有private、no-cache、max-age、must-revalidate等,默认为private。更多查看引用。


3.Pragma:此处的HTTP请求信息


二者同时存在,则被Cache-Control的max-age覆盖(继续阅读见http://www.cnblogs.com/yuyii/archive/2008/10/16/1312238.html)。


运用效果


1.不用再次下载从而提高蜘蛛的抓取效率


2.提高页面加载速度



两对影响抓取效率的 cache control header


1. Last-Modified/If-Modified-Since


第一次请求返回Last-Modified,如果页面未改动,再次请求返回304并且返回和Last-Modified一样日期的If-Modified-Since。


修改则返回200并刷新最后修改日期。


google和bing都支持


2.ETag/If-None-Match


与Last-Modified原理类似,验证的是一组哈希值。



Etag的一点解释


HTTP协议规格说明定义ETag为“被请求变量的实体值”。另一种说法是,ETag是一个可以与Web资源关联的记号(token)。典型的Web资源可以一个Web页,但也可能是JSON或XML文档。服务器单独负责判断记号是什么及其含义,并在HTTP响应头中将其传送到客户端,以下是服务器端返回的格式:ETag:"50b1c1d4f775c61:df3"客户端的查询更新格式是这样的:If-None-Match : W / "50b1c1d4f775c61:df3"如果ETag没改变,则返回状态304然后不返回,这也和Last-Modified一样。测试Etag主要在断点下载时比较有用。


这两对何时使用?


1.页面是否调用太多资源例如大量调用后端数据库?


2.页面更新是否要和蜘蛛抓取保持一致的速率?


如果两个答案都是是,就需要使用。

案例:汽车干扰遥控器www.88856777.com 四海电子解码


0 0
原创粉丝点击