初始准备 | ||
mkdir db | 建立目录存放web database | |
mkdir segments | ||
bin/nutch admin db -create | 建一个新的空的数据库 | |
第一轮抓取 | ||
bin/nutch inject db -dmozfile content.rdf.u8 -subset 3000 | 从DMOZ列表中取得URL并加入数据库 | |
bin/nutch generate db segments | 根据数据库内容,生成一个抓取列表(fetchlist) | |
s1=`ls -d segments/2* | tail -1` | 刚才生成的抓取列表放在最后一个目录中,取其名 | |
bin/nutch fetch $s1 | 利用机器人抓页面 | |
bin/nutch updatedb db $s1 | 利用抓取结果更新数据库 | |
第二轮抓取 | ||
bin/nutch analyze db 5 | 迭代5次分析页面的链接 | |
bin/nutch generate db segments -topN 1000 | 将排行前1000个URL生成新的抓取列表 | |
s2=`ls -d segments/2* | tail -1` | 执行抓取、更新、并迭代2次分析链接 | |
bin/nutch fetch $s2 | ||
bin/nutch updatedb db $s2 | ||
第三轮抓取 | ||
bin/nutch analyze db 2 | ||
bin/nutch generate db segments -topN 1000 | ||
s3=`ls -d segments/2* | tail -1` | ||
bin/nutch fetch $s3 | ||
bin/nutch updatedb db $s3 | ||
bin/nutch analyze db 2 | (为下一次做准备?) | |
索引并去重 | ||
bin/nutch index $s1 | ||
bin/nutch index $s2 | ||
bin/nutch index $s3 | ||
bin/nutch dedup segments dedup.tmp | ||
重启tomcat | ||
catalina.sh start | 在./segments所在的目录中启动 |
步骤解释:
假设存放抓取信息的目录为crawl
1. 创建空的webdb。org.apache.nutch.tools.WebDBAdminTool crawl –create
在crawl下建立db\webdb目录。
2. 注入url。
org.apache.nutch.db.WebDBInjector crawl -urlfile conf/urls.txt
这时会对db\webdb注入urls.txt文件中所有的url。(存入db\webdb\pagesByMD5和db\webdb\pagesByURL中)
3. 创建 fetchlist,记录待抓取的页面链接。
org.apache.nutch.tools.FetchListTool crawl crawl/segments
获取webdb中的链接和上层的页面链接,计算(待存新链接)=(上层的页面链接所指页面的新链接)-(webdb中的已有链接)。假如有crawl\segments\20061114141330目录,首先在目录下建fetchlist目录,然后在fetchlist\data文件存入该层待存新链接。
4. 抓取页面fetch。
org.apache.nutch.fetcher.Fetcher crawl\segments\20061114143222
通过读取fetchlist中的页面链接开始抓取页面内容,分别存入到crawl\segments\20061114143222下的content,fetcher, parse_data, parse_text目录中。
5. 更新数据库,把获取到的页面的url链接和page内容存入数据库
org.apache.nutch.tools.UpdateDatabaseTool crawl crawl\segments\20061114143222
更新crawl\db\webdb,存入fetch时抓来的页面的url和content。
6. 链接分析
org.apache.nutch.tools.LinkAnalysisTool crawl 3
没有评论:
发表评论