date:2019-08-10
《这就是搜索引擎》作者:张俊林
通用爬虫框架
爬虫分类:
批量型爬虫:一定数量、时间后停止抓取
增量型爬虫:只抓新页面和已下载网页的更新部分——核心是去重
垂直型爬虫:只抓特定主题或内容的网页——核心是识别是否属于该主题
爬虫的友好性:
①遵循反爬虫设置
在网站根目录下的robot.txt文件声明网站的禁抓目录。
User-agent:爬虫名
Disallow:禁抓目录
在网页HTML代码中限制爬虫的行为。
<meta name = "robots" content = "noindex">不允许索引网页内容
<meta name = "robots" content = "nofollow">不允许抓取网页包含的链接
②控制访问频率,降低负载,避免造成DoS
爬虫的目标:
优先抓取更重要的网页——抓取策略
及时更新网页——网页更新策略
提高抓取覆盖率——暗网抓取
抓取策略——待抓取url队列排序
宽度优先(Breath First)
将新下载网页包含的链接直接插入队尾。
原理:重要的网页链接可能被多个网页包含,被抓取的几率更大,可能更早被抓取。
非完全PageRank(Partial PageRank)
PageRank需要对抓取的全集进行计算(PageRank算法简要说明),非完全PageRank将已抓取网页和待抓取url队列视为全集,计算排名,并根据排名确定url抓取顺序。
新下载k个网页后计算新一轮的非完全PageRank。
对于计算轮次之间新增的url,将这个url所有入链传导的非完全PageRank汇总,赋予其临时PageRank。根据临时PageRank值,将其插入待抓取url队列中的对应位置。
同一个链接,对链接所在的网页来说,它是出链,对指向的网页来说,它是入链。
在线页面重要性计算(Online Page Importance Computing,OCIP)
算法开始前,为个网页分配等量“cash”;网页下载后,将其拥有的“cash”平均分配给自身包含的所有所有url;待抓取url队列根据链接拥有的“cash”值进行排序。
未完。。。