研究生课程:现代信息检索-第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/
作者
Zhang Zhao
发布于
2022年10月25日
许可协议