0
点赞
收藏
分享

微信扫一扫

Mac上搭建nutch-1.8+solr-4.8.1(验证版本)

承蒙不弃 2023-05-08 阅读 90


首先进入终端cd ~到用户主目录下,然后,开始下载:






1



wget http : //apache.fayea.com/apache-mirror/nutch/1.8/apache-nutch-1.8-bin.tar.gz



什么,没有wget命令,请自己安装brew install wget,如果你连brew都没有,自己百度怎么装,这是mac下的yum,apt-get非常有用的工具






1



tar - zxvf apache - nutch - 1.8 - bin . tar . gz



解压到当前目录下,然后进入验证下,看看是不是有效:






1



2



cd apache - nutch - 1.8



bin / nutch



如果有warning 看看是不是没有设置JAVA_HOME,如果是Permission denied,用chmod改权限
现在添加种子URL,《逆转未来 X-Men》






1



2



3



mkdir ~ / urls



vim ~ / urls / seed . txt



http : //movie.douban.com/subject/10485647/



接下去是设置URL过滤准则






1



2



cd conf



vim . / regex - urlfilter . txt



然后set nu!找到第32行,改为如下形式






1



2



3



4



5



# skip URLs containing certain characters as probable queries, etc.



#-[?*!@=]



# accept anything else



#+.



+ ^ http : \ / \ / movie \ . douban \ . com \ / subject \ / [ 0 - 9 ] + \ / ( \ ? . + ) ? $



nutch-site.xml,增加agent name的配置






1



2



3



4



< property >



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



   < value > My Nutch Spider < / value >



< / property >



下载解压solr






1



2



3



cd ~



wget http : //mirrors.cnnic.cn/apache/lucene/solr/4.8.1/solr-4.8.1.tgz



tar - zxvf solr - 4.8.1.tgz



检查安装






1



2



cd example



java - jar start . jar



打开本地URL:localhost:8983/solr/admin,如果看到如下页面说明安装成功
现在结合nutch和solr
将~/apache-nutch-1.8/conf/schema-solr4.xml拷贝到~/solr-4.8.1/solr/collection1/conf/,重命名为schema.xml






1



2



cp . / schema - solr4 . xml / Users / hongliyu / solr - 4.8.1 / example / solr / collection1 / conf



mv . / schema - solr4 . xml . / schema . xml



并在<fields>…</fields>最后添加一行添加






1



< field name = "_version_" type = "long" indexed = "true" stored = "true" multiValued = "false" / >



现在修改lockType






1



2



cd solr - 4.8.1 / example / solr / collection1 / conf



vim solrconfig . xml



做如下修改:






1



2



3



4



5



< unlockOnStartup > true < / unlockOnStartup >



< lockType > simple < / lockType >



< maxFieldLength > 10000 < / maxFieldLength >



< writeLockTimeout > 60000 < / writeLockTimeout >



< commitLockTimeout > 60000 < / commitLockTimeout >



然后在solr-4.8.1/example/solr/collection1/data/index目录下找到write.lock然后删除这个文件,再运行solr就不会有lockType错误
现在回到nutch目录下,bin/crawl,会看到

crawl <seedDir> <crawlDir> <solrURL> <numberOfRounds>

其中seedDir是url描述文件放置的目录,crawlDir是存放数据的根目录,solrURL是solr服务地址,最后一个参数是迭代的次数,运行这条命令






1



. / bin / crawl ~ / urls / . / hlyuCrawl http : //localhost:8983/solr/ 2



一般会等几分钟,屏幕上会有很多fetching url,
最后键入






1



bin / nutch readdb hlyuCrawl / crawldb / - stats



看爬虫结果
这个是自动抓取,现在让我们来手动操作一遍,首先把刚才抓取的数据都删除






1



rm - rf . / hlyuCrawl /



nutch抓取的数据是由这些组成的:
crawldb,这里的信息包括,每一个nutch可以识别的url,包括url是否被抓取,以及抓取的时间
linkdb,它的信息包括,已知的每个URL的链接列表,包括源URL和锚文本的链接
一组segments,每个segments是urls抓取作为一个单元的组,segments是字典形式,也就是key-value,包括:

  • crawl_generate 表示将要被抓取的一组urls
  • crawl_fetch 表示抓取的url的状态
  • content 包含从每条url获取的原始的内容
  • parse_text 包含每条url的解析文本
  • parse_data 包含每条url的外链和元数据解析
  • parse_parse 包括外链urls用来更新crawldb

inject:使用种子URL列表,生成crawldb






1



bin / nutch inject hlyuCrawl / crawldb ~ / urls



将主目录urls下的种子URL生成一个URL数据库,放在crawdb目录下






1



bin / nutch generate hlyuCrawl / crawldb hlyuCrawl / segments



生成fetch list,存放在一个segments/日期目录下,然后把这个目录的名字保存在shell变量ss里






1



2



ss = 'hlyuCrawl/segments/2* | tail -1'



echo $ ss



开始抓取






1



bin / nutch fetch $ ss



这样会在$ss目录下,生成两个子目录,crawl_fetch和content

开始解析






1



bin / nutch parse $ ss



更新crawldb






1



bin / nutch updatedb hlyuCrawl / crawldb $ ss



这会把crawldb/current重命名为crawldb/old,并生成新的crawldb/current

在建立索引之前,我们首先要反转所有的链接,这样我们就可以获得一个页面所有的锚文本,并给这些锚文本建立索引






1



bin / nutch invertlinks hlyuCrawl / linkdb - dir hlyuCrawl / segments



提交数据给solr,建立索引






1



bin / nutch solrindex http : //localhost:8983/solr hlyuCrawl/crawldb/ -linkdb hlyuCrawl/linkdb/ hlyuCrawl/segments/20140530125611/ -filter -normalize



如果索引里有重复数据,我们需要去重






1



bin / nutch dedup http : //localhost:8983/solr



如果数据过时了,在索引里删除吧






1



bin / nutch solrclean hlyuCrawl / crawldb / http : //localhost:8983/solr



举报

相关推荐

0 条评论