Chinaunix首页 | 论坛 | 博客
  • 博客访问: 24044
  • 博文数量: 7
  • 博客积分: 320
  • 博客等级: 一等列兵
  • 技术积分: 90
  • 用 户 组: 普通用户
  • 注册时间: 2007-07-17 19:01
文章分类

全部博文(7)

文章存档

2009年(1)

2008年(4)

2007年(2)

我的朋友
最近访客

分类:

2008-11-08 22:56:35

其实spider实现很简单,但一个完善的解决方案绝对不是那么简单的,他是一个客户端的概念,但要做一个高效、可以拿来给搜索做数据来源的,那就不只是一个简单的spider了,要结合搜索的整个过程,给出搜索想要的数据,那才是一个可用的spider,分布式就少不了,所以他又是一个服务器。

简单地分析一些重点和难点,列举出来,然后会一个一个的讨论,找出可行的解决方案,写出代码以,然后组成一个系统,如下:

<1>网页抓取的目标文件(.html, .htm, .txt, ...)要可配。抓取有不同的需求,程序写成可配,灵活度就高了。

<2>建立URL库(已访问、未访问等),不同的URL要有不同的重要度,建立这个重要度的标准是一个难点。

<3>IP范围的控制(可针对特定的搜索,在抓取后分析IP对应的网站类型或同一网站不同页面的类型进行归类)不同重要度的页面定期收集的间隔不一样。

<4>DNS缓存功能。这是提高spider爬取速度的一个重要功能,用于连接目标页面的http服务器的。

<5>连接超时、下载超时。这个必要的了,呵呵

<6>网页存储、压缩、存储方式问题。存储是个大头,互联网上那么多网页,存储不压缩,没有格式是不行的。

<7>HTTP 1.1的支持。长连接,提高效率的,技术实现,其实这个可不简单。

<8>同时访问同一个IP的并发度控制,防DDOS问题。这是个重要的问题,线程连接、和服务器分配URL问题。

<9>网页去重问题,HASH或者BLOOMFILTERS的方法,重点哦。

<10>网页二次访问问题,不同重要度的网页,二次访问的间隔不同。这个又是重要度的问题。

<11>域名与IP的对应问题,两个不同IP相同文件路径,指向同一页面,这个问题可以优先级应该是比较低的,但也是实现的一部分。

<12>相似网页问题,对内容相似的网页进行分类,排序出重要度,这个难点,特别是对我来说。

<13>网页搜集的深度方案,重要度不同,深度不同,又是重要度与深度的结合,这个很重要。

<14>网页文件解析,这是个大头,普通的静态动态网页,更高级的抓取 javascript以及ajax等等。

<15>实现XML可配,可扩展,归档,支持海量URL数量,分布,C/S结构(服务器分布也使用CS结构),线程池,连接池,对象池等等技术。

这里的大部分问题有许多解决的方法,要参考一些开源项目,还有GOOGLE的原理,当然都要自己做设计的,看来问题真得很多,努力,加油,要做就要做好!!

阅读(724) | 评论(0) | 转发(0) |
0

上一篇:重生!

下一篇:Aranya之URL(1)

给主人留下些什么吧!~~