Archive for the ‘搜索技术’ Category
Sunday, November 19th, 2006
Lucene 是 Apache Jakarta 的一个子项目,是一个全文检索的搜索引擎库。其提供了简单实用的 API,通过这些 API,可以自行编写对文件(TEXT/XML/HTML等)、目录、数据库的全文检索程序。
Features:
* Very fast indexing, minimal RAM required
* Index compression to 30% of original text
* Indexes text and HTML, document classes available for XML, PDF and RTF
* Search supports phrase and Boolean queries, plus, minus and quote marks, and parentheses
* Allows single and multiple character ...
Posted in 搜索技术 | No Comments »
Tuesday, November 14th, 2006
最近几天开始学习使用lucene1.9, weblucene 0.6来进行索引、检索web页,发现weblucene的中文分词做的还是不错的,一般的两三个字的词语都可以检索。这次参考了chedong的文档和竹笋炒肉的blog,以及这篇blog文章,在此非常感谢他们创建的这些开源项目。
Posted in Java, 搜索技术 | 1 Comment »
Thursday, September 7th, 2006
抓取某网站页面,运行Nutch好几个小时之后,突然,电脑死机,reset,再看运行抓取的log文件,最后出现的是一些乱码信息,看来又得重新运行爬虫程序抓取了,郁闷...不知nutch能否支持"续抓"的功能?呵呵...
Posted in 搜索技术 | 5 Comments »
Wednesday, September 6th, 2006
续接《Nutch爬虫实验运行及抓取数据分析(一)》:
在分析了WebDB之后,下面我们继续分析Nutch爬虫在对实验网络抓取之后其它的结果文件内容。
Segments
Crawler在抓取中共生成了三个segment,分别存放于segments文件夹下的以时间戳为文件夹名的三个子文件夹下面。每个segment代表Crawler的一次“产生/抓取/更新”循环。Nutch中提供了如下的命令可以清晰的看到segments的简介:
bin/nutch segread -list -dir crawl-tinysite/segments/
命令结果如下所示:
PARSED? STARTED FINISHED COUNT DIR NAME
true 20051025-12:13:35 20051025-12:13:35 1
crawl-tinysite/segments/20051025121334
true 20051025-12:13:37 20051025-12:13:37 1
crawl-tinysite/segments/20051025121337
true 20051025-12:13:39 20051025-12:13:39 2
crawl-tinysite/segments/20051025121339
TOTAL: 4 entries in 3 segments.
结果中PARSED?列表示的是在抓取之后是否接着进行解析和索引,默认的都是true。但是
如果你利用底层命令进行抓取操作的时候,你可以在抓取之后独立地再另外进行解析和索
引工作,此时此列才会为false。STARTED和FINISHED两列记录的是此循环的开始时间和
结束时间,这些信息可以帮助用户分析那些抓取时间过长的页面是怎么回事。COUNT列代
表的是此segment内包含的被抓取回来的网页数目,例如最后一个segment此列值为2,代表
的是segment中有两个被抓取回来的网页,即C网页和C-dup网页。
但是这些简介信息并不够详细,下面的命令可以可以更清楚的看到单个segment的
详细信息,我们以第一个segment为例:
s=`ls -d crawl-tinysite/segments/* | head -1`
bin/nutch segread -dump $s
结果为:
Recno:: 0
FetcherOutput::
FetchListEntry: version: 2
fetch: true
page: Version: 4
URL: http://keaton/tinysite/A.html
ID: 6cf980375ed1312a0ef1d77fd1760a3e
Next fetch: Tue Nov 01 11:13:34 GMT 2005
Retries ...
Posted in 搜索技术 | No Comments »
Wednesday, September 6th, 2006
为了更深入地对Nutch爬虫进行了解,我们需要运行一个实际的抓取过程并对这个过程中的细节进行记录,对抓取生成的结果文件进行内容分析。首先你需要下载Nutch程序并搭建起可以令其运行的平台,这在网上都有详细的说明资料,我就不赘述了。我们需要做的第一步就是建立起一个实验用的Web站点,这个站点只包含了四个网页。图1描述了这四个网页之间的链接关系,并且C网页和C-dup网页的网页内容是相同的。
图1 实验站点结构图
我们首先需要设置种子URL,我们设置A网页为爬虫起始抓取网页。命令如下:
echo 'http://keaton/tinysite/A.html' > urls
另外我们需要限制Crawler只抓取这个实验站点的网页,Nutch爬虫使用一个Filter来识别URL是否需要抓取。我们可以通过对conf/crawl-urlfilter.txt文件的修改来实现这个Filter,将文件中的
+^http://([a-z0-9]*\.)*MY.DOMAIN.NAME/
内容修改为
+^http://keaton/
接下来,我们执行下面的命令行来运行Crawler:
bin/nutch crawl urls -dir crawl-tinysite -depth 3 >& crawl.log
在这个爬行命令中,我们设置抓取结果存储于crawl-tinysite文件夹中,抓取日志为crawl.log,另外限定了抓取深度为3,也就是告诉Crawler需要执行3次“产生/抓取/更新”循环就可以抓取完毕了。由于实验站点的简陋,深度为3就可以了,但是在实际运行时需要根据实际情况来进行设置。
下面就让我们通过对抓取产生文件的内容分析来进一步的了解Crawler的工作吧。
首先我们来看一下抓取过程中产生的所有文件有哪些,打开crawl-tinysite文件夹,里面有三个子目录,详细如图2所示:
图2 爬虫运行完毕所生成文件
Nutch自身带了很多查看结果文件的工具,我们利用它们来进行文件内容展示。
WebDB
首先我们需要看一下WebDB中的网页数目和链接数目,以确定站点爬行情况,执行下面的命令行:
bin/nutch readdb crawl-tinysite/db -stats
结果为:
Number of pages: 4
Number of links: 4
正如所料,其中包括四个网页(A,B,C,C-dup)和四个链接。因为WebDB只能去除重复URL,所以其中仍然含有C-dup网页,但是A网页却并没有被抓取两次。接下来,看一下WebDB中的网页实体和链接实体的具体存储内容,执行命令:
bin/nutch readdb crawl-tinysite/db -dumppageurl
生成结果:
Page 1: Version: 4
URL: http://keaton/tinysite/A.html
ID: fb8b9f0792e449cda72a9670b4ce833a
Next fetch: Thu Nov 24 11:13:35 ...
Posted in 搜索技术 | No Comments »
Wednesday, September 6th, 2006
来源:侧耳倾听的博客
Nutch 0.8在2006.7.25在其官方网站上正式发布,此版本在以前的基础上做了很大的改进.因此在进行爬行的时候不能完全按照各版本的方法进行.本人已经成功安装和使用,具体使用如下:
辅助软件
1、Java 1.4.x ;
2、Apache's Tomcat 4.x ;
3、Cygwin ;
使用
1、新建环境变量或添加环境变量新值
PATH= F:\nutch-0.8\bin; (NUTCH-0.8的安装路径)
JAVA_HOME = C:\Program Files\Java\jdk1.5.0_07 (JDK的安装路径)
NUTCH_HOME= F:\cygwin (On windows, using cygwin the default NUTCH_HOME is at \\cygdrive\)
(*环境变量值依据读者具体情况设定)
2、运行crawl命令
①在nutch-0.8的安装目录下新建一个文件夹,例如取名search。然后在此文件夹内建立一个文本文件命名为urls.txt。该文件的内容为所要进行crawl的网站地址,例http://www.163.com/。(以前版本不需先建立一个文件夹,直接建文本文件就行。但在0.8版本里不先建立文件夹crawl命令就会出错)。
②修改nutch-0.8\conf\crawl-urlfilter.txt,把文件中的MY.DOMAIN.NAME全部替换成163.com 。
③修改nutch-0.8\conf\nutch-site.xml,
http.robots.agents
www.163.com
http.agent.name
www.163.com
Posted in 搜索技术 | 34 Comments »