研究生课程:现代信息检索-第17讲 信息采集
《现代信息检索》课程笔记:第17讲 信息采集
第17讲 信息采集
一个简单的采集器
基本的采集过程
- 初始化采集URL 种子队列
- 重复如下过程
- 从队列中取出URL
- 下载并分析网页
- 从网页中抽取更多的URL
- 将这些URL 放到队列中
上述简单采集器的问题:
- 规模问题:必须要分布式处理
- 我们不可能索引所有网页,必须要从中选择部分网页,如何选择?
- 重复网页:必须要集成重复检测功能
- 作弊网页和采集器陷阱:必须要集成作弊网页检测功能
- 礼貌性问题:对同一网站的访问按遵照协议规定,并且访问的间隔必须要足够
- 新鲜度问题:必须要定期更新或者重采
- 由于Web 的规模巨大,我们只能对一个小的网页子集频繁重采
- 同样,这也存在一个选择或者优先级问题
采集器必须做到
- 礼貌性
- 不要高频率采集某个网站
- 仅仅采集robots.txt 所规定的可以采集的网页
- 鲁棒性
- 能够处理采集器陷阱、重复页面、超大页面、超大网站、动态页面等问题v
任意一个采集器应该做到:
- 能够进行分布式处理
- 支持规模的扩展:能够通过增加机器支持更高的采集速度
- 优先采集高质量网页
- 能够持续运行:对已采集网页进行更新
一个真实的采集器
待采集URL池:
- 待采集URL池是一个数据结构,它存放并管理那些已经看到但是还没有采集的URL集合
- 可能包含来自同一主机的不同页面
- 必要要避免在同一时间采集这些来自同一主机的页面
- 必须要保证采集线程任务饱和
基本的采集架构
URL规范化
内容重复判别
- 对每个抓取的页面,判断它是否已在索引当中
- 可以采用文档指纹或者shingle 的方法判别
- 忽略那些已经在索引中的重复页面
分布式采集
- 运行多个采集线程,这些线程可以分布在不同节点上
- 这些节点往往在地理上分散在不同位置
- 将采集的主机分配到不同节点上
分布式采集器
待采集URL池 : 主要考虑两点
- 礼貌性: 不要非常频繁第访问某个 Web 服务器
- 比如,可以在两次服务器访问之间设置一个时间间隔
- 新鲜度: 对某些网站的采集频率如新闻网站要高于其他网站
采集器陷阱
- 一些恶意的服务器可以产生无穷的链接网页序列
- 一些复杂的采集器陷阱产生的页面不能简单地判断为动态页面
研究生课程:现代信息检索-第17讲 信息采集
https://zhangzhao219.github.io/2022/10/25/UCAS/information-retrieval/information-retrieval-17/