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

原创 2007年09月18日 12:20: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.


       2017.11.1作者注:糖果下载组件已经提交到糖果云库中,请搜索糖果云网站。

 

VC++实现的网络爬虫程序,非常适合做二次开发

  • 2011年05月30日 12:41
  • 3.4MB
  • 下载

C++网络爬虫的实现——WinSock编程

写了一个网络爬虫,可以抓取网上的图片。 需要给定初始网站即可。 在vs2010中编译通过。 编译后,运行即可,有惊喜哦!!! //#include #include #include #i...
  • huangxy10
  • huangxy10
  • 2012年10月28日 04:05
  • 50474

VC下嵌入SpiderMonkey引擎的编译详解

/* 摘要:在你的代码中嵌入JS引擎 */ // 下载获得js-1.60.tar.gz的tarball并解压,下载地址:http://ftp.mozilla.org/pub/mozilla.org/...
  • xuplus
  • xuplus
  • 2014年03月29日 09:20
  • 641

mfc c++版网络爬虫

  • 2010年04月22日 11:48
  • 66KB
  • 下载

C++网络爬虫的实现——WinSock编程

爬虫原理 从最开始的网址开始,在其中找到链接到其他网页的超链接,放到一个网页队列里面保存起来,找到该网页的所有图片,下载下来。查看网页队列是否为空,不为空则取出下一个网页,提取该网页的超链接放入队列...
  • huixingshao
  • huixingshao
  • 2015年06月05日 08:56
  • 1524

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

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

Spider网络爬虫程序

  • 2010年02月03日 00:44
  • 130KB
  • 下载

Spider工作流程.

使用request获取网页得到response,使用selector去分析网页内容,selector使用XPath,CSS等方法来解析网页内容。 1. HTML语言,网页文本语言解读 2. Spide...
  • xuxiatian
  • xuxiatian
  • 2016年10月26日 18:19
  • 424

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

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

Spider 之 爬虫 基本工作原理

网络爬虫是捜索引擎抓取系统的重要组成部分。爬虫的主要目的是将互联网上的网页下载到本地形成一个或联网内容的镜像备份。这篇博客主要对爬虫以及抓取系统进行一个简单的概述。 一、网络爬虫的基本结构及工作流程...
  • u013630349
  • u013630349
  • 2016年03月21日 20:36
  • 2947
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:网络爬虫(spider)程序的编程实现
举报原因:
原因补充:

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