`
kenby
  • 浏览: 717444 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

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

阅读更多

一 爬虫----下载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解析器----从网页内容中抽取单词,存放到数据库中

 

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

 

四 网页排名

分享到:
评论

相关推荐

    自己动手写操作系统 一个从0开始构建搜索引擎工程的书

    是你自己动手写操作系统的一本好书,从头至尾讲解了如果从配置环境到写成一个操作系统的过程

    从零开始构建的一个宠物识别系统.zip

    URL收集: 爬虫从一个或多个初始URL开始,递归或迭代地发现新的URL,构建一个URL队列。这些URL可以通过链接分析、站点地图、搜索引擎等方式获取。 请求网页: 爬虫使用HTTP或其他协议向目标URL发起请求,获取网页的...

    knowledge graph知识图谱,从零开始构建知识图谱.zip

    例如,在搜索引擎中,知识图谱可以提升搜索结果的相关性和准确性,为用户提供直接的答案而非仅仅是网页链接。同时,知识图谱还能支撑高级的人工智能应用,比如问答系统、推荐系统、决策支持等领域。 构建知识图谱的...

    从零开始搭建爬虫+向量数据库+LLM大模型构建企业私有化知识库.zip

    URL收集: 爬虫从一个或多个初始URL开始,递归或迭代地发现新的URL,构建一个URL队列。这些URL可以通过链接分析、站点地图、搜索引擎等方式获取。 请求网页: 爬虫使用HTTP或其他协议向目标URL发起请求,获取网页的...

    Hadoop.chm HadoopAPI Hadoop英文版最新API

    从零开始构建一个网络搜索引擎是一个很大的计划,并且往往会遇到很多的问题。不仅是因为编写一个爬虫并索引页面的软件比较复杂,而且,一个这样的项目需要一个专门的团队来实现。项目中也包含许多随时都需要修改的...

    从零开始实现基于知识图谱的对话系统.zip

    例如,在搜索引擎中,知识图谱可以提升搜索结果的相关性和准确性,为用户提供直接的答案而非仅仅是网页链接。同时,知识图谱还能支撑高级的人工智能应用,比如问答系统、推荐系统、决策支持等领域。 构建知识图谱的...

    以小核酸科技协同为例从零开始构筑知识图谱+领域知识问答机器人.zip

    例如,在搜索引擎中,知识图谱可以提升搜索结果的相关性和准确性,为用户提供直接的答案而非仅仅是网页链接。同时,知识图谱还能支撑高级的人工智能应用,比如问答系统、推荐系统、决策支持等领域。 构建知识图谱的...

    推荐引擎算法以及使用Python构建它们的基本框架

    推荐引擎算法以及使用Python构建它们的基本框架(DataPi THU翻译),教你从0开始搭建搜索引擎(python),附原文地址: ...

    ElasticSearch5.2全网最全技术视频

    (4)学完课程之后,学员除了可以开发复杂的es搜索/分析系统之外,还可以掌握在任何一个公司里,从零开始搭建一个分布式的大型es集群,并制定完善的监控,运维,管理,优化等方案 (4)大型项目架构篇 课程特点 (1...

    watery:Je仅在使用Water.css框架的同时,仍遵循最佳实践的可访问性和搜索引擎优化为Jekyll设计的极简主义主题

    该项目针对那些对第一次使用Jekyll感兴趣的人,并希望从零开始尽可能地构建。 另外,只需单击几下,它仍具有创建无忧信息网站或博客所需的所有功能。 截至2020年11月1日,在Watery上发布了70多个帖子,该网站在...

    Python3编写的各种大小程序,包含从零学Python系列、12306抢票、省市区地址库以及系列网站爬虫等学习源码.zip

    URL收集: 爬虫从一个或多个初始URL开始,递归或迭代地发现新的URL,构建一个URL队列。这些URL可以通过链接分析、站点地图、搜索引擎等方式获取。 请求网页: 爬虫使用HTTP或其他协议向目标URL发起请求,获取网页的...

    商务网站运营策划书.zip

    本商务网站运营策划书旨在为大学生创业团队提供一个详尽的蓝图,以指导其如何从零开始构建并有效管理一个商务平台。该策划书首先对市场进行了细致的分析,识别目标客户群,分析竞争对手,以及潜在的市场需求。通过这...

    零基础学习python爬虫.zip

    URL收集: 爬虫从一个或多个初始URL开始,递归或迭代地发现新的URL,构建一个URL队列。这些URL可以通过链接分析、站点地图、搜索引擎等方式获取。 请求网页: 爬虫使用HTTP或其他协议向目标URL发起请求,获取网页的...

    良心的 Python 教程.zip

    URL收集: 爬虫从一个或多个初始URL开始,递归或迭代地发现新的URL,构建一个URL队列。这些URL可以通过链接分析、站点地图、搜索引擎等方式获取。 请求网页: 爬虫使用HTTP或其他协议向目标URL发起请求,获取网页的...

    JAVA上百实例源码以及开源项目源代码

    Tcp服务端与客户端的JAVA实例源代码 2个目标文件 摘要:Java源码,文件操作,TCP,服务器 Tcp服务端与客户端的JAVA实例源代码,一个简单的Java TCP服务器端程序,别外还有一个客户端的程序,两者互相配合可以开发出超多...

    爬虫学习仓库,适合零基础的人学习,对新手比较友好.zip

    URL收集: 爬虫从一个或多个初始URL开始,递归或迭代地发现新的URL,构建一个URL队列。这些URL可以通过链接分析、站点地图、搜索引擎等方式获取。 请求网页: 爬虫使用HTTP或其他协议向目标URL发起请求,获取网页的...

    python爬虫教程.zip

    URL收集: 爬虫从一个或多个初始URL开始,递归或迭代地发现新的URL,构建一个URL队列。这些URL可以通过链接分析、站点地图、搜索引擎等方式获取。 请求网页: 爬虫使用HTTP或其他协议向目标URL发起请求,获取网页的...

    JAVA上百实例源码以及开源项目

     Tcp服务端与客户端的JAVA实例源代码,一个简单的Java TCP服务器端程序,别外还有一个客户端的程序,两者互相配合可以开发出超多的网络程序,这是最基础的部分。 递归遍历矩阵 1个目标文件,简单! 多人聊天室 3...

    java开源包1

    SimpleCache 是一个简单易用的java缓存工具,用来简化缓存代码的编写,让你摆脱单调乏味的重复工作!1. 完全透明的缓存支持,对业务代码零侵入 2. 支持使用Redis和Memcached作为后端缓存。3. 支持缓存数据分区规则的...

Global site tag (gtag.js) - Google Analytics