导航:首页 > 程序命令 > nutch命令

nutch命令

发布时间:2022-05-03 05:14:45

1. nutch怎么才能抓取到动态的url

修改crawl-urlfilter的过滤规则,

# The url filter file used by the crawl command.

# Better for intranet crawling.
# Be sure to change MY.DOMAIN.NAME to your domain name.

# Each non-comment, non-blank line contains a regular expression
# prefixed by '+' or '-'. The first matching pattern in the file
# determines whether a URL is included or ignored. If no pattern
# matches, the URL is ignored.

# skip file:, ftp:, & mailto: urls
-^(file|ftp|mailto):

# skip image and other suffixes we can't yet parse
-\.(gif|GIF|jpg|JPG|png|PNG|ico|ICO|css|sit|eps|wmf|zip|ppt|mpg|xls|gz|rpm|tgz|mov|MOV|exe|jpeg|JPEG|bmp|BMP)$

# skip URLs containing certain characters as probable queries, etc.
-[?*!@=] //表示过滤包含指定字符的URL,改为: -[~]

# skip URLs with slash-delimited segment that repeats 3+ times, to break loops
-.*(/.+?)/.*?\1/.*?\1/

# accept hosts in MY.DOMAIN.NAME
+^http://([a-z0-9]*\.)*tianya.cn/[\s\S]* // 过滤正则表达式,([a-z0-9]*\.)*表示任意数字和字母,[\s\S]*表示任意字符
# skip everything else
-.

Nutch爬虫设置

Nutch本身包含一个对目标站点进行索引的爬虫和一个提供搜索用的web界面。在查询界面可以使用前需要先设置Nutch爬虫对目标站点进行抓取。
部分配置文件的解释:

* nutch\conf\nutch-default.xml
o 设置http.agent.name,如果http.agent.name为空,爬虫将无法正常启动。这里可以设置任意你喜欢的名字,比如设置为vik-robot。
o indexer.mergeFactor/indexer.minMergeDocs 这两个值都改成500。这两个参数值越大,性能越高,所需要花费的内存也需要相应的增加。如果设置过大,可能出现内存溢出。就实际使用情况,在当前参数下,内存的最大使用量为3xxM。
o

http.timeout表示最大超时等待时间,如果访问的连接长时间没有反应将丢弃。
o db.max.outlinks.per.page该参数表示单个页面最多支持多少个外连的连接,如果过多将不抓取。 如果是自己的内部系统那就设置一个任意大的数吧。
o nutch-default.xml 解读
*

创建文件nutch\urls,并填入爬虫的起始url。比如:

http://mysite.com/

*

nutch\conf\crawl-urlfilter.txt 该文件用于设置需要索引的url的过滤关系。每行一个过滤条件,-表示不包含该url,+表示包含。
o [?*!@=],该行表示对所有动态url都不抓取。 现在的大部分系统都会有很多动态url,该过滤条件很可能使你抓不到任何内容。
o

针对各系统分别设置url的过滤关系。具体的设置方法得根据各自应用系统的不同而不同,这里以广为流行的论坛discuz为例。在这url过滤将只抓取板块列表和帖子内容。

# skip file:, ftp:, & mailto: urls
-^(file|ftp|mailto):

# skip image and other suffixes we can't yet parse
-\.(gif|GIF|jpg|JPG|png|PNG|ico|ICO|css|sit|eps|wmf|zip|ppt|mpg|xls|gz|rpm|tgz|mov|MOV|exe|jpeg|JPEG|bmp|BMP)$

# skip URLs containing certain characters as probable queries, etc.
#-[?*!@=]

# skip URLs with slash-delimited segment that repeats 3+ times, to break loops
-.*(/.+?)/.*?\1/.*?\1/

# accept hosts in MY.DOMAIN.NAME
#+^http://([a-z0-9]*\.)*MY.DOMAIN.NAME/
#discuz
+^http://mysite.com/discuz/index.php$
+^http://mysite.com/discuz/forumdisplay.php\?fid=\d+$
+^http://mysite.com/discuz/forumdisplay.php\?fid=\d+&page=\d+$
+^http://mysite.com/discuz/viewthread.php\?tid=\d+&extra=page%3D\d+$
+^http://mysite.com/discuz/viewthread.php\?tid=\d+&extra=page%3D\d+&page=\d+$
# skip everything else
-.

* nutch\conf\regex-urlfilter.txt 我不清楚该配置文件是否有起作用,但建议注释掉其中的,-[?*!@=]。

执行爬虫

*

由于Nutch的脚本采用的是linux下是shell,在windows下需要使用cygwin来执行。至于cygwin的具体使用...,这个到网上找其他文章吧。cygwin官网

*

进入Nutch目录后执行命令 sh bin/nutch crawl urls -dir crawl -threads 2 -depth 100 -topN 1000000 >& crawl.log 完成网站的抓取和索引。
o threads 抓取网页的线程数,理论上线程数越多速度越快,但过多的线程会给服务器带来比较大的负担,影响正常使用。
o depth 页面的抓取深度。
o topN 每层最多抓取的页面数
o crawl.log 日志存放文件

2. 如何让nutch从新爬取数据

改URL 不是在N-S.XML里面
你定义的那个urls 和conf 里面的crawl-urlfilter.txt
如果你是在linux下面的话,从新爬不改索引库位置的话,会直接覆盖原先的索引库,在windows下的话,就需要改下索引库位置或者是删掉原先的索引库了

3. 如何调试nutch

Nutch默认只给用户提供一种是用方法就是用一个cygwin的模拟器去模拟一个的环境,然后用户去用命令行在cygwin中执行搜索,还有就是当开发者把nutch的源代码导入到eclipse的工程目录下然后执行
org.apache.nutch.crawl.Crawl类的main()这两种方法只是适合程序员做调试的时候手动开启,所以在二次开发nutch的时候就要把crawl放到在jsp中去调用,
步骤
1:新建一个web工程,把nutch源代码中plugins文件夹下的目录复制到src下,把nutch下src/java 中的这些包复制src下
2:把nutch中conf文件夹的所有配置文件复制到src目录下,把nutch中nutch.job文件复制到src下边
3 把nutch中lib文件夹的jar文件复制到web-inf的lib下
4 重新在src下建立一个类,用这个类去调用crawl的main()
package valley.test;import org.apache.nutch.crawl.Crawl;public class test {public static void main(String[] args) {String []arg ={“url.txt”,“-dir”,“crawled”,“-depth”,“10”,“-topN”,“50”};try {Crawl.main(arg);} catch (Exception e) {// TODO Auto-generated catch blocke.printStackTrace();}}}
3 接下来就可以在jsp中去调用这个test类了,一般在调用的时候都会出现一个异常-Xms100m -Xmx800m 异常代码如下Injector

4. 我在windows下面安装了cygwin和nutch0.9但是bin/nutch命令显示的内容里面怎么 没有admin命令啊

需要用将环境变量配置一下,好像用 import $PATH=$PATH;/bin;/sbin;/usr/bin;/usr/sbin
把用到的命令加入。

5. 如何自定义nutch htmlparse插件

在conf/nutch-site.xml加入http.agent.name的属性
生成一个种子文件夹,mkdir -p urls,在其中生成一个种子文件,在这个文件中写入一个url,如http://nutch.apache.org/
编辑conf/regex-urlfilter.txt文件,配置url过滤器,一般用默认的好了,也可以加入如下配置,只抓取nutch.apache.org这个网址 +^http://([a-z0-9]*.)*nutch.apache.org/
使用如下命令来抓取网页
bin/nutch crawl urls -dir crawl -depth 3 -topN 5 说明: -dir 抓取结果目录名 -depth 抓取的深度 -topN 最一层的最大抓取个数 一般抓取完成后会看到如下的目录 crawl/crawldb crawl/linkdb crawl/segments
使用如下来建立索引
bin/nutch solrindex http://127.0.0.1:8983/solr/ crawldb -linkdb crawldb/linkdb crawldb/segments/* 使用这个命令的前提是你已经开启了默认的solr服务 开启默认solr服务的命令如下 cd ${APACHE_SOLR_HOME}/example java -jar start.jar 这个时候服务就开启了 你可以在浏览器中输入如下地址进行测试 http://localhost:8983/solr/admin/ http://localhost:8983/solr/admin/stats.jsp
但是要结合Nutch来使用solr,还要在solr中加一个相应的策略配置,在nutch的conf目录中有一个默认的配置,把它复制到solr的相应目录中就可以使用了 cp ${NUTCH_RUNTIME_HOME}/conf/schema.xml ${APACHE_SOLR_HOME}/example/solr/conf/ 这个时候要重新启动一下solr
索引建立完成以后就你就可以用关键词进行查询,solr默认返回的是一个xml文件

6. 在win7上搭建nutch环境,jdk,eclipse,tomcat,环境已经配置好,cygwin安装后用bin/nutch成功,如图一

bin/nutch前面加上./

7. 为什么会没有“crawl”的命令

bin/nutch crawl urls -dir crawl -depth 3 -topN5
就你这条命令来看:
1、需要cygwin进入nutch的目录即nutch home,才有bin/nutch命令
2、urls必须是在nutch home下?另外urls是文件还是文件夹,如果是文件夹,里面有例如url.txt之类的文件没有
3、-dir crawl中的crawl是一个文件夹,在nutch home下,你有创建没?
4、不知道你的截屏是否完整,如果不是完整的,后面有&> crawl/crawl.log之类的,这是将log记录到指定的这个crawl/crawl.log中,是否在nutch home下有类似crawl/crawl.log的存在。 【如果是完整的,则log直接打印在cygwin中,这条可以忽视】

8. 如何把nutch爬取的网页内容存写到MongoDB

进入nutch的安装目录,运行命令:

bin/nutch readseg -mp db/segments/20090525140014 segdb -nocontent -nofetch -nogenerate -noparse -noparsedata

db/segments/20090525140014为一个segments文件夹,segdb为存放转换后的内容的文件夹。

9. 一分钟了解互联网数据挖掘流程

一分钟了解互联网数据挖掘流程

1、爬虫抓取网络数据

真实的数据挖掘项目,一定是从获取数据开始的,除了通过一些渠道购买或者下载专业数据外,常常需要大家自己动手爬互联网数据,这个时候,爬虫就显得格外重要了。

Nutch爬虫的主要作用是从网络上抓取网页数据并建立索引。我们只需指定网站的顶级网址,如taobao.com,爬虫可以自动探测出页面内容里新的网址,从而进一步抓取链接网页数据。nutch支持把抓取的数据转化成文本,如(PDF、WORD、EXCEL、HTML、XML等形式)转换成纯文字字符。

Nutch与Hadoop集成,可以将下载的数据保存到hdfs,用于后续离线分析。使用步骤为:

向hdfs中存入待抓取的网站url

$ hadoop fs -put urldir urldir

注:

第一个urldir为本地文件夹,存放了url数据文件,每行一个url地址

第二个urldir为hdfs的存储路径。

启动nutch,在NUTCH_HONE目录下执行以下命令

$ bin/nutch crawlurldir –dir crawl -depth 3 –topN 10

命令成功执行后,会在hdfs中生成crawl目录。

2、MapRece预处理数据

对于下载的原始文本文档,无法直接进行处理,需要对文本内容进行预处理,包括文档切分、文本分词、去停用词(包括标点、数字、单字和其它一些无意义的词)、文本特征提取、词频统计、文本向量化等操作。

常用的文本预处理算法是TF-IDF,其主要思想是,如果某个词或短语在一篇文章中出现的频率高,并且在其他文章中很少出现,则认为此词或者短语具有很好的类别区分能力,适合用来做分类。

输入原始文本内容:

Againit seems that cocoa delivered……

执行TF-IDF预处理:

hadoop jar $JAR ……

输出文本向量:

9219:0.246 453:0.098 10322:0.21 11947:0.272 ……

每一列是词及其权重,使用冒号分隔,例如“9219:0.246”表示编号为9219的词,对应原始单词为“Again”,其权重值为0.246。

3、Mahout数据挖掘

预处理后的数据就可以用来做数据挖掘。Mahout是一个很强大的数据挖掘工具,是分布式机器学习算法的集合,包括:协同过滤、分类、聚类等。

以LDA算法为例,它可以将文档集中每篇文档的主题按照概率分布的形式给出。它是一种无监督学习算法,在训练时不需要手工标注主题,需要的仅仅是指定主题的数量K。此外LDA的另一个优点则是,对于每一个主题均可找出一些词语来描述它。

输入预处理后的数据:

9219:0.246 453:0.098 ……

执行LDA挖掘算法:

mahout cvb –k 20……

输出挖掘结果:

topic1 {computer,technology,system,internet,machine}

topic2 {play,film,movie,star,director,proction,stage}

我们可以获知用户的偏好是哪些主题,这些主题是由一些关键词组成。

4、Sqoop导出到关系数据库

在某些场景下,需要把数据挖掘的结果导出到关系数据库,用于及时响应外部应用查询。

sqoop是一个用来把hadoop和关系型数据库中的数据相互转移的工具,可以将一个关系型数据库(例如:MySQL ,Oracle 等)中的数据导入到hadoop的hdfs中,也可以将hdfs的数据导出到关系型数据库中:

sqoop export –connect jdbc:mysql://localhost:3306/zxtest –username root–password root –table result_test –export-dir /user/mr/lda/out

export操作实现把hdfs目录/user/mr/lda/out下数据导出到mysql的result_test表。

10. 关于nutch的问题:我从别人那里直接拷过来的一个包,解压后如图:

1在cygwin下的哪个目录出错的?
你ls / 一下, 看看windows硬盘被挂载到哪个目录了。

2 不明白你问的问题, eclipse只是编译环境,应该没什么关系吧

阅读全文

与nutch命令相关的资料

热点内容
滴滴app有青桔优惠券怎么用 浏览:123
删哪几个文件夹加速 浏览:28
创建电影源码爬取项目 浏览:453
java多余的空格 浏览:83
手机软件连接云服务器 浏览:888
内圆弧编程实例 浏览:48
饼干pdf 浏览:423
kylin源码大全 浏览:687
android构建工具 浏览:422
zigy命令行选项不兼容 浏览:561
加密系统能录屏吗 浏览:190
安卓淘宝点进去跳链接如何关闭 浏览:786
u盘加密了手机读取不了 浏览:947
oracle11g启动命令 浏览:931
怎么把视频传到自己的文件夹 浏览:700
福州电动车在哪个app上摇号 浏览:818
礼书PDF 浏览:667
什么app看本子 浏览:394
如何学好编译语言 浏览:591
平面编程和切削 浏览:704