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

网页抓取服务是互联网中的经常使用服务。在搜索引擎中spider(网页抓取爬虫)是必需的核心服务。搜索引擎的衡量指标“多、快、准、新”四个指标中,多、快、新都是对spider的要求。搜索引擎公司比方google、baidu都维护者自己负责的spider系统。

当然他们的系统非常复杂,在这里我们介绍一个小型的网页抓取系统的架构,目标是高速的抓取某个或者几个指定的站点的数据。它的作用有非常多。比方做竞品分析,还有其它不可告人的J。

以下这个小型的网页抓取系统,分成以下几个部分:

1)网页种子文件,这个里面配置要抓取的链接是我们抓取服务的起点。

2)链接池,链接的FIFO队列,种子的link会先入这个队列。

3)抓取线程,从链接池中获取链接。并下载网页生成的网页数据放到网页池。

4)网页池,网页的FIFO队列,抓取的网页都会进入到这个pool;

5) 抽取线程是系统的核心,它负责依据配置的模板抽取网页中指定的链接与数据,将抽取到个格式化数据入到抽取线程,将抽取出来的新的链接放到链接库;

6)调度线程,负责链接的调度策略,将选择合适的链接放到链接池队列。

系统架构例如以下:

本文转自mfrbuaa博客园博客,原文链接:http://www.cnblogs.com/mfrbuaa/p/5235536.html,如需转载请自行联系原作者

一个小型的网页抓取系统的架构设计相关推荐

  1. python3一个简单的网页抓取

    python3一个简单的网页抓取 都是学PYTHON.怎么学都是学,按照基础学也好,按照例子增加印象也好,反正都是学 import urllib import urllib.requestdata={ ...

  2. 一个简单的网页抓取工具

    前两天遇到一个妹子,她说不会从拉网页,我想用node做个网页抓取工具是何尝的简单,于是装x之路开始了. 其实想法很简单,由网址得到html,由html解析css,js,image等,分别下载就行了, ...

  3. 网络爬虫系列之网页抓取

    ​ (你的世界是个什么样的世界?你说,我们倾听!) ----------------- 网页抓取 我们在抓取网页时需要安装requests包,具体安装过程如下: pip install request ...

  4. 玩转Java网页抓取

    - 使用Java进行网页抓取 - 用于网页抓取的流行语言有Python.JavaScript和Node.js.PHP.Java.C#等.因为有很多选择,想要确定哪种语言最合适并不容易.每种语言都有其优 ...

  5. 网页抓取公式实例之船舶定位

    日常工作中大家难免需要抓取网页中的一些数据,因此Excel网络函数库推出了一个专门的网页抓取公式,利用这个公式你就可以到各种网站上抓取你想要的数据了,本文主要通过对某网站船舶定位数据的抓取来向大家介绍 ...

  6. 系统检测到您正在使用网页抓取工具_【安全】58反抓取简介

    0x00 介绍 网络爬虫,常又被称呼为Spider,网络机器人,主要模拟网络交互协议,长时间,大规模的获取目标数据. 普通爬虫会从网站的一个链接开始,不断收集网页资源,同时不断延伸抓取新获取的URL以 ...

  7. 系统检测到您疑似使用网页抓取工具访问本_12款最常使用的网络爬虫工具推荐...

    网络爬虫在当今的许多领域得到广泛应用.它的作用是从任何网站获取特定的或更新的数据并存储下来.网络爬虫工具越来越为人所熟知,因为网络爬虫简化并自动化了整个爬取过程,使每个人都可以轻松访问网站数据资源.使 ...

  8. html抓取文章,网页抓取工具:一个简单的文章采集示例

    通过采集网页抓取工具火车采集器官网的faq为例来说明采集器采集的原理和过程. 本例以 http://faq.locoy.com/qc-12.html 演示地址,以火车采集器V9为工具进行示例说明. ( ...

  9. 几种PHP实现网页抓取的程序代码

    网页抓取就像搜索引擎一个可以去自动抓取其它服务器上的内容了,下面我整理的几个php常用做法,大家一起来看看. 抓取某一个网页中的内容,需要对DOM树进行解析,找到指定节点后,再抓取我们需要的内容,过程 ...

最新文章

  1. 【从零开始的ROS四轴机械臂控制】(六)- 逻辑控制节点
  2. flash的运算比较符
  3. 我的研究生这三年(含腾讯AI Lab实习、CVPR发表经验)
  4. 使用BlazeDS实现Java和Flex通信之hello world
  5. linux自动定时运行的脚本编写
  6. java 解析http返回的xml_Java解析调用webservice服务的返回XML串详解
  7. 「微信小程序」剖析(二):框架原理 | 在桌面浏览器上运行的
  8. Linux系统原理(工作模式)
  9. 使用root登陆到mysql后执行_如何让mysql以root用户远程登陆mysql数据库
  10. 俄罗斯方块Python
  11. 魔方——一面两层之后的公式
  12. java的inputbox_InputBox函数的使用方法
  13. ArduCopter——ArduPilot——航点导航WPNav(一)
  14. 医咖会免费STATA教程学习笔记——单因素方差分析
  15. hive建表(一)创建外部表
  16. 憨批的语义分割重制版2——语义分割评价指标mIOU的计算
  17. 论文学习记录20200313:隐私保护机器学习[NDSS2020]
  18. Python3字典合并的几种方法
  19. 公司网站源码(公司官网源码)PHP
  20. python中列表(list)的基本操作

热门文章

  1. 删除表格数据后自动刷新_表格中一键即可删除重复数据,你居然还用逐条排查?...
  2. BP神经网络 PID控制simulink仿真
  3. 2021-01-26 Python自动化办公-处理word文档
  4. 信号通路怎么读_奥利给~~代谢通路富集分析原来还可以这么做?
  5. Power Strings_JAVA
  6. 三种权重的初始化方法
  7. 今天开始学Pattern Recognition and Machine Learning (PRML),章节5.2-5.3,Neural Networks神经网络训练(BP算法)
  8. Programming Computer Vision with Python (学习笔记一)
  9. 【C#学习】delegate(委托) 和 event(事件)
  10. Vue.js 从 Vue 1.x 迁移