网络爬虫(spider)程序的编程实现

转载 2007年09月19日 13:29:00
随着网络的迅速发展,万维网成为大量信息的载体,如何有效地提取并利用这些信息成为一个巨大的挑战。搜索引擎(Search Engine),例如传统的通用搜索引擎AltaVista,百度,Yahoo!和Google等,作为一个辅助人们检索信息的工具成为用户访问万维网的入口和指南。

      网络爬虫是一个自动提取网页的程序(网络蜘蛛),它为搜索引擎从万维网上下载网页,是搜索引擎的重要组成。传统爬虫从一个或若干初始网页的URL开始,获得初始网页上的URL,在抓取网页的过程中,不断从当前页面上抽取新的URL放入队列,直到满足系统的一定停止条件.

搜索引擎中网络爬虫的设计分析

1】 网络爬虫高度可配置性。
可以配置网络参数,例如带宽等等

2】 网络爬虫可以解析抓到的网页里的链接
这是必须的,要不你爬什么呢?

3】 网络爬虫有简单的存储配置
爬下来的东西要怎么存

4】 网络爬虫拥有智能的根据网页更新分析功能
最傻的做法是没有时间更新权重,一通的爬,回头再一通的爬。
通常在下一次爬的的数据要跟上一次进行比较,如果连续5次都没有变化,那么将爬这个网页的时间间隔扩大1倍。
如果一个网页在连续5次爬取的时候都有更新,那么将设置的爬取时间缩短为原来的1/2。

5】 网络爬虫的效率相当的高
这是最关键的,涉及到MONEY, 别人一台机器一天能爬100G, 你要100台机器,那你死定了。

     应该说各种爬虫的目的不一样,有的是爬邮件地址,有的爬客户信息,有的爬图片,有的爬音乐,有的什么都要(例如搜索引擎),但各种爬虫中,最重要的一点是下载效率要高,要能耗尽机器的资源。

     机器的资源是什么呢? 最主要两种:CPU运算资源,网络带宽资源。在目前条件下,网络带宽资源更珍贵,所以优先耗尽带宽资源,如果带宽资源耗不尽时CPU都已经100%了,简单,再买一台机器。带宽比机器贵多了阿。

     所以在爬虫程序中,效率是最关键的,下面是用糖果下载组件来实现的一个简单的爬虫,它能把任何机器的带宽耗尽,只要调节并发任务参数。当然百度地链接都是可下载的,即使所有url中有30%的死链接,依然可以达到这个速度,因为其并发参数是可调的, 发现下载速度小于最大速度时,增加并发任务数就可以了。

    

    (本程序的VC6工程在糖果下载组件中安装包中提供)

       测试时用的一台512K的ADSL上网机器,512K说的是位(bit), 转换为字节速度是512/8 = 64k字节/秒。 而这个爬虫的平均下载速度达到76k/s, 说明已经把带宽耗尽了。按照这个速度,这台机器一天能爬 76*86400 = 6.6G.

 

网络爬虫、spider程序、网络蜘蛛

问题?网络爬虫、spider程序、网络蜘蛛 定义:Spider又叫WebCrawler或者Robot,是一个沿着链接漫游Web 文档集合的程序。它一般驻留在服务器上,通过给定的一些URL,利用HTT...
  • Mr_li13
  • Mr_li13
  • 2016年01月04日 20:57
  • 1404

网络蜘蛛爬虫 Scrapy - 简介&Demo

大家都说现在是移动互联网的时代, 那么有”网”的地方, 就肯定有”蜘蛛”. 今天, 我们就来在这个连接着全世界的巨型网络中, 创造一只小小的”蜘蛛”, 去爬取我们想要的”食物”. 引说...
  • haoyuewen812
  • haoyuewen812
  • 2015年04月01日 16:03
  • 551

Spider 之 爬虫 基本工作原理

网络爬虫是捜索引擎抓取系统的重要组成部分。爬虫的主要目的是将互联网上的网页下载到本地形成一个或联网内容的镜像备份。这篇博客主要对爬虫以及抓取系统进行一个简单的概述。 一、网络爬虫的基本结构及工作流程...
  • u013630349
  • u013630349
  • 2016年03月21日 20:36
  • 2857

[Python爬虫] scrapy爬虫系列 <一>.安装及入门介绍

前面介绍了很多Selenium基于自动测试的Python爬虫程序,主要利用它的xpath语句,通过分析网页DOM树结构进行爬取内容,同时可以结合Phantomjs模拟浏览器进行鼠标或键盘操作。但是,更...
  • Eastmount
  • Eastmount
  • 2015年11月08日 04:22
  • 7511

让Scrapy的Spider更通用

《Scrapy的架构初探》一文所讲的Spider是整个架构中最定制化的一个部件,Spider负责把网页内容提取出来,而不同数据采集目标的内容结构不一样,几乎需要为每一类网页都做定制。我们有个设想:是否...
  • fullerhua
  • fullerhua
  • 2016年07月01日 10:32
  • 1897

BurpSuite系列(三)----Spider模块(蜘蛛爬行)

一、简介 Burp Spider 是一个映射 web 应用程序的工具。它使用多种智能技术对一个应用程序的内容和功能进行全面的清查。 Burp Spider 通过跟踪 HTML 和 JavaScri...
  • u011781521
  • u011781521
  • 2017年01月15日 11:50
  • 2385

网络爬虫之Spider

网络爬虫是搜索引擎的一个重要的部分。爬虫的根本原理就是下载页面,然后进行解析。Web上的存储着海量数据,怎么样才能将海量数据尽快的下载到本机上?这是网络爬虫设计的一个方案。采取多线程技术。以下代码实现...
  • bolingbl
  • bolingbl
  • 2015年03月10日 22:45
  • 327

Spider网络爬虫学习——通过Get、Post方法直接抓取网页内容

网络爬虫(又被称为网页蜘蛛,网络机器人),是一种按照一定的规则,自动的抓取万维网信息的程序或者脚本。另外一些不常使用的名字还有蚂蚁,自动索引,模拟程序或者蠕虫。...
  • SmallStoneSK
  • SmallStoneSK
  • 2014年05月23日 15:39
  • 3291

一个简单网络爬虫示例

在学生时期,可能听到网络爬虫这个词会觉得很高大上,但是它的简单实现可能学生都不难懂。 网络爬虫应用,就是把整个互联网真的就当做一张网,像蜘蛛网那样,应用就像一个虫子,在网上面按照一定的规则爬动。 现在...
  • wenhuayuzhihui
  • wenhuayuzhihui
  • 2016年02月04日 11:17
  • 10583

Java+MySQL实现网络爬虫程序

网络爬虫,也叫网络蜘蛛,有的项目也把它称作“walker”。维基百科所给的定义是“一种系统地扫描互联网,以获取索引为目的的网络程序”。网络上有很多关于网络爬虫的开源项目,其中比较有名的是Heritri...
  • zoubf
  • zoubf
  • 2016年03月20日 22:24
  • 1346
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:网络爬虫(spider)程序的编程实现
举报原因:
原因补充:

(最多只允许输入30个字)