《http权威指南》阅读笔记(七)

web机器人

要标示机器人 通过http User-Agent进行声明

原理:通过root路径->页面中的anchor 递归下去,基本上root页面就是一个网站的首页

web机器需要知道那些url已经爬过,由于url不规范,需要先规范化url,比如添加默认端口80,格式化url中的特殊字符用 %XX代替,去掉查询字符串中的#等等

 

web机器人爬去页面主要注意:

1 避免陷入环路,比如a包括b,b里面有包括a

2 避免被恶意网站陷入死循环,比如动态页面,每爬取一次,重新新生成的动态内容,新的动态页面继续生成动态页面,循环下去

3 url连接回路,比如http://www.test.com/index.html 里面有anchor test/index.html 而test/ 里面由包括了 test/又包括test/ 并且返回的同一个内容,url连接就无限的 /test/test/test/test循环下面  

 

如何避免上面的问题:

1 规范化rul,访问的url进行标记

2 url连接长度控制,到一定长度拒绝爬去,防止url连接回路

3 广度优先遍历

4 黑名单机制

5 对内容进行相似度检测

 

web机器人访问权限控制

网站根目录 防止 robot.txt 文件

格式

#注释

User-Agent: robot-name

DisAllow: /xxxx

Allow: /xxx

 

User-Agent: robot-name2

DisAllow: /xxxx

Allow: /xxx

 

可以在html head标签里面定义<meta name="" conent=""/>标签进行控制

常见的name有 robots、 key、 describtion 等

 

web机器人实现对内容进行缓存和索引,查询的时候查询的是索引数据库