《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机器人实现对内容进行缓存和索引,查询的时候查询的是索引数据库