该题目来自阿里2014年秋季校园招聘《系统工程师》笔试题的附加题。

原题目为:

3.搜索引擎是很常用的web应用。大部分搜索引擎需要设计一个抓虫(Crawler),从很多网站抓去网页,分析数据,供搜索引擎使用。

设想你来做一个搜索引擎的爬虫,需要抓去约一百万家网站的网页内容。

1) 请画出一个抓虫系统的架构图。

2) 重点说明你的爬虫需要如何优化来提升性能。

查阅相关资料,做出以下解答:

爬宠系统大致分为以下几个部分,分别为:

爬虫模块:阶段性地抓取互联网上的内容

存储模块:存储爬虫下载下来的网页,是分布式的和可扩展的存储系统

解析模块:提取文本和网页的链接集合。

URL管理模块:重复消除模块决定一个解析出来的链接是否已经在URLFrontier或者最近下载过

索引模块:将抓取到的信息经过优化,建立索引

任务队列(URL集):需要爬取得网页列表

DNS模块:解析模块根据给定的URL决定从哪个Web服务器获取网页

可以优化的地方:

爬虫模块并行

DNS缓冲

文本解析去重

建立索引时可以优化

URL去重也可能有优化算法

转载于:https://blog.51cto.com/muyunzhe/1626130

请画出一个抓虫系统的架构图并说明你的爬虫需要如何优化来提升性能相关推荐

  1. img 标签 点击跳出图层_如何用PS在一个图层里画出一个会动的太极八卦图|教程...

    如何用PS的加减运算做出一个标准的八卦图(超详细步骤,小白福利),首先要考虑八卦图一共用了几个圆,每个圆与每个圆之间的联系. 首先ctrl+n新建一个画板(宽和高随便设置) 用矢量工具来画八卦图,什么 ...

  2. 一个小型的网页抓取系统的架构设计

    一个小型的网页抓取系统的架构设计 网页抓取服务是互联网中的经常使用服务.在搜索引擎中spider(网页抓取爬虫)是必需的核心服务.搜索引擎的衡量指标"多.快.准.新"四个指标中,多 ...

  3. 请画出计算机系统层次结构图,计算机系统结构

    <计算机系统结构> 1.并行性 2.一次重叠 3.信息按整数边界存储 4.模拟 5.仿真 6.在输入输出系统中,集中式的总线控制方式常见的有哪三种? 7.软件的可移植性 8.主存空间数相关 ...

  4. C语言密勒码的软件编码,密勒码的编码规则是什么?请画出代码序列11010010的密勒码波形?...

    相关题目与解析 CMI码的编码规则是什么?请画出代码序列11010010的CMI码波形? 数字双相码的编码规则是什么?请画出代码序列11010010的双相码波形? 简述双相码(曼彻斯特码)的编码规则并 ...

  5. 请编写出一个html页面 令其输出,javaweb程序设计案例教程_课后习题1.pdf

    第一章 [测一测] 学习完前面的内容,下面来动手测一测吧,请思考以下问题: 1.请描述HTML .CSS. .JavaScript 分别表示的含义. 2 .请列举出HTML 常用的标记.(至少10 个 ...

  6. python中词云图怎样变成特殊图案_如何利用python画出一个多变的词云图?(1)...

    问题描述: 如何利用python画出一个多变的词云图? 解决方法:import numpy as np import matplotlib import matplotlib.pyplot as pl ...

  7. 依次输入表(30,15,28,20,24,10,68,35,50)中的元素,生成一棵平衡的二叉排序树。请画出构造过程,并在其中注明每一次平衡化的类型(LL型、RR型、LR型、RL型)

    题目 依次输入表(30,  15,  28,  20,  24,  10,  68,  35,  50)中的元素,生成一棵平衡的二叉排序树. 请画出构造过程,并在其中注明每一次平衡化的类型(LL型.R ...

  8. 假设一动态集合S用一个长度为m的直接寻址表T来表示。请给出一个查找S中最大元素的过程。(算法导论第十一章11.1-1)

    假设一动态集合S用一个长度为m的直接寻址表T来表示.请给出一个查找S中最大元素的过程.你所给的过程在最坏情况下的运行时间是多少. (算法导论第十一章11.1-1) #include "Key ...

  9. php绘制一个三角形,如何利用css或html5画出一个三角形?两种不同的制作三角形方法(代码实例)...

    我们在平时的前端开发的时候,有时候是需要一些小图形来丰富一下页面效果,比如:下拉列表的倒三角图形.那么这样的一个三角形是如何制作出来的,本章给大家介绍如何利用css或html画出一个三角形?两种不同的 ...

  10. [html] 你能否画出一个0.5px的直线?

    [html] 你能否画出一个0.5px的直线? 通过scale(0.5)来实现 个人简介 我是歌谣,欢迎和大家一起交流前后端知识.放弃很容易, 但坚持一定很酷.欢迎大家一起讨论 主目录 与歌谣一起通关 ...

最新文章

  1. 如何去掉latex中默认显示的日期
  2. [物理学与PDEs]第3章习题1 只有一个非零分量的磁场
  3. android 开发--获取文件的扩展名和去掉文件的扩展名
  4. java.net.URISyntaxException的解决办法
  5. Java黑皮书课后题第3章:*3.32(几何:点的位置)给定一个从点p0(x0,y0)到p1(x1,y1)的有向线段,可以用以下公式判定定点p2(x2, y2)是在线段的左侧、右侧,或者在该线段上
  6. 说说我心中的Linux系统
  7. Python 函数知识
  8. oracle dba_hist tablepsace,oracle数据库dba_hist等视图中的Delta相关字段介绍
  9. java 云 代码_我 - java代码库 - 云代码
  10. python爬取五百丁word模板(有图+有代码)
  11. C# TCP/IP通讯协议的整理(二)附带——与欧姆龙PLC通讯
  12. 格式工厂 wav 比特率_鸡娃常用工具系列一格式工厂(音频转换软件)
  13. 【转载】什么是公网IP、内网IP和NAT转换?
  14. GitHub圣诞最火神器:“时光穿梭机”一键实现变老变年轻!
  15. VirtualBox虚拟机的网卡地址重复导致的问题
  16. mars老师Java教程百度网盘,你一定不能错过
  17. 美团创始人王兴用实际行动证明,为什么富人更容易创业成功?
  18. 《三体》刘慈欣:意识上传离现实还存在很大技术障碍
  19. Android之MVP模式
  20. 绩效考核软件,强势助力二、三级公立医院绩效大考

热门文章

  1. Java参数传递机制分析:值与引用
  2. 传媒业进入B2C领域:香港商报推爱购商城
  3. 删除百度贴吧上的内容
  4. Gradle与Gradle插件
  5. 最新eclipse国内镜像站,比ustc等站点资源新。
  6. C#获取二维数组的行数和列数及其多维。。。
  7. gerrit docker运行失败 chown: /var/gerrit/review_site: Permission denied 【已解决】
  8. 《Linux内核分析》 week6作业-Linux内核fork()系统调用的创建过程
  9. Bitmap-把方形图片处理为圆形
  10. Hibernate Annotation 设置字段的默认值