今天下午我做了一个Nutch深度的测试。先在apache2下建立一个小网站,这个网站用Git作版本控制工具,它只有5个网页,分别是a.html,b.html,c.html,d.html,index.html。它们的链接关系index.html中有a.html,a.html有b.html,依次类推。
这五个网页分别有各自的特殊字符
页面 |
特殊字符 |
index.html |
首页 |
a.html |
三国演义 |
b.html |
西游记 |
c.html |
群英汇 |
d.html |
红楼梦 |
这期间发生一个小插曲,我开始用nutch爬起这个小网站,结果什么都搜不到。我反复折腾,最后总算对比其他网页才知道错在哪。原因就是开始我图简单就少写了meta标签,所以总是搜不到。看来下一次要好好研究研究nutch的字符编码问题:
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
下面正式开始测试,先写个Rakefile,这样就可以简化操作:
depth=1
task:default => [:search]
task:crawl do
sh "bin/nutch crawl myurl -dir crawl/ -depth #{depth} -threads 10"
end
task:search => [:crawl] do
sh 'rm -rf ../crawl'
sh 'mv crawl ../'
sh 'sudo /etc/init.d/tomcat6 restart'
end
修改depth的值,依次从1-5,分别执行rake,搜诉网页上的特殊字符结果如下:
depth |
首页 |
三国演义 |
西游记 |
群英汇 |
红楼梦 |
1 |
可以 |
|
|
|
|
2 |
可以 |
可以 |
|
|
|
3 |
可以 |
可以 |
可以 |
|
|
4 |
可以 |
可以 |
可以 |
可以 |
|
5 |
可以 |
可以 |
可以 |
可以 |
可以 |
nutch的深度是
依据链接的,这样设计的爬虫容易控制。