查看文章
 
设计网络爬虫之前概述
2009年02月18日 星期三 11:22

爬虫研究了有一段时间,感觉要想设计出一个高效的爬虫,并非易事。而且,必须将爬虫设计过程中存在的每一个问题都熟悉,这是最基础的第一步,然后需要对这些问题的每一种现行解决方案进行试行,观察一下当前这种解决方式的基本思路。

只有在熟悉了一个爬虫工作过程中都会遇到哪些问题,对这些问题已存在解进行对比,才能继续设计工作。其实,如果到了开始设计爬虫的时候,基本上所有的问题都已经被发现,并已经都试图提出过解决的方案,否则,如果存在的问题并没有发现而且没有解决掉,在设计编码的过程中你会感觉到——磕磕绊绊。

这是我最大的感受了,往往因为一个问题的出现,导致你的精力不能集中在爬虫的编码设计中,或者,因为某些问题的存在导致现在的设计不合理,只能重新返工,你肯定会希望把爬虫设计的最好。所以,还是一点点地将分解的爬虫实现,然后通过重构将爬虫集成为一个能够正常工作的有机体。

下面,通过一种直观的方式来了解一个最基本的爬虫是怎样工作的。

我们可以通过现在的很多开源爬虫来了解。推荐一个最适合初学入门的爬虫,那就是使用Java实现的weblech,你可以从网上搜索下载它的,这个爬虫的设计并不是很好,但是对于入门的人来说,它是足够的简单使你能够很快地入门。

如果你以前听说过爬虫,也知道爬虫是用来下载网页数据为搜索引擎提供数据的工具,但是不知道爬虫运行起来会是什么样子,都做了哪些工作,你最好就是把weblech运行一下,然后把它的源代码读一下,深刻体会一下,你就会有“柳暗花明又一村”的感觉。

下面简单介绍一下这个爬虫:

weblech共有3个包:weblech.spider、weblech.ui和weblech.util。weblech.spider包内是爬虫的核心实现代码,Spider类是我们启动后能够下载的爬虫,使用了Java线程技术;SpiderConfig类是一个爬虫配置类,通过解析Spider.properties属性配置文件,来配置一个爬虫;HTMLParser类是一个网页文件解析类,主要就是提取网页文件中的内容;URLGetter类是爬虫能够下载的核心实现,能够下载网页数据;DownloadQueue类是下载过程中使用的队列,因为每个爬虫线程启动后,需要获取到解析提取出来的URL后才能下载,爬虫线程就是从下载队列中获得URL资源的;URLToDownload类是封装一个待下载URL实体的类,然后将该实体类的实例加入到下载队列中,供爬虫线程执行出队获取待下载URL对象;URLObject类是用来封装下载并简单解析过的网页数据的一个实体类;DumbAuthenticator类是用来设置爬虫下载网站的认证信息的,包括用户名和密码。

根据该爬虫提供的配置说明,非常容易地就能运行起来,开始下载网页数据。


类别:Web Crawler||添加到搜藏 |分享到i贴吧|浏览(1259)|评论 (0)
 
最近读者:
 
网友评论:
发表评论:
姓 名:
网址或邮箱: (选填)
内 容:
     

   
帮助中心 | 空间客服 | 投诉中心 | 空间协议
©2012 Baidu