论坛首页 Java企业应用论坛

垂直搜索爬虫设计疑问?

浏览 8113 次
精华帖 (0) :: 良好帖 (0) :: 新手帖 (0) :: 隐藏帖 (0)
作者 正文
   发表时间:2009-03-18   最后修改:2009-12-15
由于我想开发一个垂直搜索引擎,
所以最近在关注垂直搜索引擎中的爬虫是如何爬取信息的?
现在我有4个疑问,希望能有人给点意见。
1、如何找到我们所需要的领域资源?
显然我们不可能象google,百度那样的在整个web上爬取网页,那样也不能搜集全我们要的领域资源,更新也太慢。就这个问题曾和两个做过垂直搜索的科技人员和老师聊过,他们的方法都是事先搜集全有关领域资源的网站,然后再定向爬取这些网站。但是这有个问题就是这些网站之外的资源该如何爬取?这个我看到有关资料中讲的方法是,根据已收集资源的链接来判断爬取,这个方法我觉得也还行。不知道还有没有其他思路?

2、如果是定向爬取一些特定的网站,如何抓取网站中的动态网页(常叫deep web)?
我觉得这是个大问题,现在这种动态的资源(主要是那些没有指向它的层次链接的)现在实在是太多,更要命的是这些网页往往对于垂直搜索引擎很重要,关于这些网页的爬取资料中讲到主要方法是:模拟表单提交,这个没有深入的研究过,不知难度和效率怎么样,希望有经验的人给点建议。

3、网页的更新策略?
对我们爬下来的网页已经新生成的网页,我们有怎么确定更新策略呢?比如那些静态的网页我想很常时间再爬一次也行就可以了,而对于那些经常修改很对于我们又很重要的网页是不是能几个小时就更新一次。但是这些更新策略该如何确定呢?有关资料上说了若干策略,分析网页的重要行,更新的频率等。
4、性能的评价
我想对于如何一个系统都应该有一个手段对其性能进行评价,对于我们这样一个垂直爬虫该如何评价其性能呢?
以上是我遇到的主要疑问,希望能有人与我多交流.


以下为网友回答。
----------------------------------------------------------------------

1.一般都是人工挑选该方面资源丰富站点,全网资源通过对google等网页搜索引擎给出的搜索结果查找添加进垂直搜索引擎来源;
2.建议查看loadrunner方面资料,有的loadrunner工具可以生成很多帐号模拟人机交互动作的;
3.对于新添加网站,花十天左右每天隔一小时爬一次,确定该网站更新策略,建立相应模型,如果从以后模型的运行中发现问题,再做策略探查;
4.这个嘛,不好说。
   发表时间:2009-03-19  
1.领域资源目前具有可行性的显然还是收集网站。大部分的做法也是如此
2.获取动态网页。在实际工作中,对表单提交后的页面的获取往往是比较不重要的,一般希望获取的不是特定的数据,如一个用户登录后能够看到的个人信息。获取的一般是对大众开发的信息,如新闻列表,论坛的板块等等,所以个人认为,模拟表单提交这类技术在垂直引擎方面,意义不大
3.更新策略,如果是指页面统一更新策略,个体更新策略及分类更新策略之类的,恕我看不出与爬虫有什么关系。爬虫的目的在于利用最小的消耗获取最合适的资源。考察一个网站的更新,应该是针对哪些是我应该爬过的,哪些是我这次需要爬到的,避免重复获取。对于效率,数据量都是一个极大的帮助
4.性能,对于一个分析效率比较高的爬虫,基本消耗还是不太大,比较只是面对网络传输,一大堆的字符串分析。还是比较基础的功能。关键在与多线程,爬虫的分配,以及存储方法。
这里还只是说爬虫,整个搜索面临的最重要的问题不是爬虫,一般都是搜索入口,分词,全文索引,海量数据等

当然,上面都是个人的一些意见,还希望大家能一起讨论。
0 请登录后投票
   发表时间:2009-03-19  
tangmi 写道

1、如何找到我们所需要的领域资源?

可以根据www.hao123.com或者www.chinarank.org.cn或者www.alexa.com或者其他你认为分类比较准确的网站上面的分类。作为你的最开始的领域资源的入口。然后通过站内卫链接进行广度下载。不过,多数情况下,是由某个领域的客户专门指定目标site

tangmi 写道

2、如果是定向爬取一些特定的网站,如何抓取网站中的动态网页(常叫deep web)? ......
模拟表单提交,这个没有深入的研究过,不知难度和效率怎么样,希望有经验的人给点建议。

我们曾经的做法是:
1. 在目标网站上注册一个账号。以后每次去目标网站上爬资源的时候,先模拟用户登录,然后就可以下载了。不过有一个缺陷是:目前有很多网站的登陆需要验证码,如何识别验证码是一个问题。
2. 关于验证码,有想过一个方法,就是注册账号的时候,登陆一次(人工登陆)。并且选择在机器上保存信息。这样子,就会把cookie保存下来。以后就可以直接用。当然,这个只是一个思路。没有具体的实验过。希望搂主如果采用了这个方式,请给出实验结果


tangmi 写道

3、网页的更新策略?

这个可以设定网页的更新权重。比方说行业里面排名靠前的权重大,更新快。否则权重小,更新慢。然后就是,在原始权限的基础上,每次爬下来的内容,和之前的内容作一次对比(把上次的内容取MD5比较)。如果相同,权限就降低一个等级。总是,算法很多,这个不固定。

tangmi 写道

4、性能的评价
我想对于如何一个系统都应该有一个手段对其性能进行评价,对于我们这样一个垂直爬虫该如何评价其性能呢?

性能的评价:
1. 单位时间按下载数据量的大小。这个可能与网络,机器都有关系。
2. 下载内容的延迟性,这个可能就是取决于第3个问题的算法了。

接下来可能不属于下载的性能评价,应该算是网页分析的性能评价
3. 下载内容的准确性,对于一个网页,用户需要的是里面有价值的信息。这个,与你们下载模板的准确性有关。
4. 还是下载内容的准确性,上面提到了下载模板的准确性,如果不采用模板,那么就与你们的信息提取算法有关系了。比方说:通过密度提取等


0 请登录后投票
   发表时间:2009-03-19  
很感谢大家的回复,我会好好参考大家的意见。
0 请登录后投票
   发表时间:2009-06-19  
参考《搜索引擎零距离》这本书
0 请登录后投票
   发表时间:2009-06-19  
1、如何找到我们所需要的领域资源?
不知道自己的资源还要搞什么


4、性能的评价
看一上午能下几万网页,爬虫的瓶颈是网速





http://pricecome.com
0 请登录后投票
论坛首页 Java企业应用版

跳转论坛:
Global site tag (gtag.js) - Google Analytics