如何自定义nutch htmlparse插件

如何自定义nutch htmlparse插件,第1张

在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文件

建议采用jsoup来抓取和解析文件。

jsoup支持css选择器。

下面是一个简单的例子:

Document doc = Jsoup.parse(in/*文件流*/, charset/*字符集*/, service/*相对地址*/)

Element e = doc.select("div[id=myid]").get(0)// 用选择器选择元素

List<Node> childs = new LinkedList<Node>(e.childNodes())

for (Iterator<Node> iter = childs .iterator() iter.hasNext()) {

   iter.next().remove()// 移除找到元素的所有子元素

e.appendText("sometext")    // 追加新内容

String content = doc.html() // 生成结果


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/zaji/6186741.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-03-17
下一篇 2023-03-17

发表评论

登录后才能评论

评论列表(0条)

保存