最近在研究nutch,找到了关于使用底层命令进行全网爬行的资料。
首先获得网址集,使用http://rdf.dmoz.org/rdf/ 目录下的content.example.txt 文件做测试,建立文件夹dmoz
命令:bin/nutch org.apache.nutch.tools.DmozParser content.example.txt >dmoz/urls
注射网址到crawldb数据库:
命令:bin/nutch inject crawl/crawldb dmoz
创建抓取列表:
命令:bin/nutch generate crawl/crawldb crawl/segments
把segments下的文件保存到变量s1中,供以后调用:
命令:s1=`ls -d crawl/segments/2* | tail -1`
命令:echo $s1
注`不是单引号,而是左上角跟~一个键位的那个
运行fetcher获取这些url信息:
命令:bin/nutch fetch $s1
更新数据库,把获取的页面信息存进数据库中:
命令:bin/nutch updatedb crawl/crawldb $s1
第一次抓取结束。
接下来选择分值排在前10的url来进行第二次和第三次抓取:
命令:bin/nutch generate crawl/crawldb crawl/segments -topN 10
命令:s2=`ls -d crawl/segments/2* | tail -1`
命令:echo $s2
命令:bin/nutch fetch $s2
命令:bin/nutch updatedb crawl/crawldb $s2
命令:bin/nutch generate crawl/crawldb crawl/segments -topN 10
命令:s3=`ls -d crawl/segments/2* | tail -1`
命令:echo $s3
命令:bin/nutch fetch $s3
命令:bin/nutch updatedb crawl/crawldb $s3
根据segments的内容更新linkdb数据库:
命令:bin/nutch invertlinks crawl/linkdb crawl/segments/*
建立索引:
命令:bin/nutch index crawl/indexes crawl/crawldb crawl/linkdb crawl/segments/*
可以通过此命令进行查询:
命令:bin/nutch org.apache.nutch.searcher.NutchBean faq 此处的faq代表所要搜索的关键词