从零开始构建一个简单的搜索引擎

一 爬虫----下载html网页

1 广度优先还是深度优先,研究表明,按照广度优先搜索方式得到的网页集合要比深度优先搜索得到的集合重要

 

2 多线程和异步IO,爬虫下载网页分三个步骤:1)查询url的dns 2)socket连接服务器 3) 从服务器下载数据

只有把这三个步骤并行化才能加快抓取速度,采用的策略是,异步dns查询,多线程connect服务器,最后使用

select IO多路转接来下载数据,实践中发现最耗时的步骤是connect操作.

 

3 网页去重,把下载过的网页保存在一个大的hash table中

 

4 数据结构:一个保存待下载url的队列,一个保存已查询过dns的hash table, 一个保存已下载过url的hash table,

一个保存空闲连接的队列,一个保存正在下载连接的队列

 

二 html解析器----从网页内容中抽取单词,存放到数据库中

 

三 搜索----根据关键字搜索网页

 

四 网页排名

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值