找到无法索引的页面
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 四海电子解码