posts - 145,comments - 23,views - 73万

1.下载Nutch1.7的包 apache-nutch-1.7-src.zip,解压之后应该包括 bin,conf,src等目录

2.将解压之后的 apache-nutch-1.7 文件夹放到eclipse的workspace中

3.创建工程(工程类型是 java Project from existing Ant Buildfile) 选择apache-nutch-1.7/build.xml, Project Name为apache-nutch-1.7

4.右键 conf目录  bulidPath --> use as sourceFolder,并修改项目的编码方式为UTF8

 

5. 修改conf下的nutch-site.xml,在configuration标签对中添加如下代码:

<property>

   <name>http.agent.name</name>

    <value>test</value>

</property>

6. 用ant编译build.xml,勾选jar, job 和runtime(默认就勾选上了)

7. 将生成的build/ jar  job  plugins复制到根目录下面

注意,每次修改了conf目录中的配置文件,必须重新编译,重新把jar job plugins复制一份,修改才能生效

 

8.在工程的根目录下建立urls文件夹,其中新建一个seed.txt文件,里边就是我们需要爬取的目标网站,如果需要爬多个网站,每个网站占一行

 

9.修改crawl-urlfilter.txt,只过滤我们想要的网站(下边的正则表达式表示只过滤以.163结束的URL地址)

# accept hosts in MY.DOMAIN.NAME

+^http://([a-z0-9]*\.)*163.com/

 

10.手动运行 org.apache.nutch.crawl包里边的Crawl.java  需要一下的参数

Usage: Crawl <urlDir> -solr <solrURL> [-dir d] [-threads n] [-depth i] [-topN N]

urlDir指的是需要爬取的url地址(就是上边我们建立的urls文件夹里seed.txt里的URL)这里我们写 urls

sorlURL是slor服务的地址,暂时可以不管

-dir是爬取之后的文件存放的位置 我们可以再建一个和urls平级的文件夹 dir

-threads 是抓取的时候启动的线程的数量

-depth 指的是抓取的深度

-topN  每次抓取的最大page数量

 

为Crewl.java 添加如下运行参数 Crawl urls -dir dir -threads 2 -depth 3 -topN 5 然后就可以抓取了

 

在windows下可能会遇到的问题:

1 fail to set permissions of path\ staging 0700

nutch1.4往上的版本会有这个问题,hadoop设置的文件权限问题,linux下没有问题,

解决的办法参看CSDN的这篇文章:http://blog.csdn.net/mengfei86/article/details/8155544  修改一下Hadoop-core1.2.0的源代码,注释掉检查文件权限的那段代码 ,重新编译一下。 替换掉apache-nutch-1.7/build/lib下的Hadoop-core-1.2.0.jar即可。

 

 

 

 

 

 

posted on   梦中彩虹  阅读(1112)  评论(0编辑  收藏  举报
编辑推荐:
· AI与.NET技术实操系列:基于图像分类模型对图像进行分类
· go语言实现终端里的倒计时
· 如何编写易于单元测试的代码
· 10年+ .NET Coder 心语,封装的思维:从隐藏、稳定开始理解其本质意义
· .NET Core 中如何实现缓存的预热?
阅读排行:
· 分享一个免费、快速、无限量使用的满血 DeepSeek R1 模型,支持深度思考和联网搜索!
· 25岁的心里话
· 基于 Docker 搭建 FRP 内网穿透开源项目(很简单哒)
· ollama系列01:轻松3步本地部署deepseek,普通电脑可用
· 按钮权限的设计及实现
< 2025年3月 >
23 24 25 26 27 28 1
2 3 4 5 6 7 8
9 10 11 12 13 14 15
16 17 18 19 20 21 22
23 24 25 26 27 28 29
30 31 1 2 3 4 5

点击右上角即可分享
微信分享提示