您当前的位置:首页 > 问答 > 内容

nutch使用(java相关,nutch的问题,nutch爬取回来的结果用java怎么读取呢谢谢!)

本文目录

  • java相关,nutch的问题,nutch爬取回来的结果用java怎么读取呢谢谢!
  • 如何利用nutch和hadoop爬取网页数据
  • 使用Nutch能抓取针对性的内容吗
  • nutch和elasticsearch的区别

java相关,nutch的问题,nutch爬取回来的结果用java怎么读取呢谢谢!

nutch 抓取的结果会存储为索引形式,这个索引有两种方式使用1、可以使用nutch自带的功能进行查询;2、也可以使用lucene的api包进行通过java程序调用相关的方法传递索引的路径即可使用。

如何利用nutch和hadoop爬取网页数据

最终选择的是apache nutch,到目前为止最新的版本是1.31. Nutch是什么?Nutch是一个开源的网页抓取工具,主要用于收集网页数据,然后对其进行分析,建立索引,以提供相应的接口来对其网页数据进行查询的一套工具。其底层使用了Hadoop来做分布式计算与存储,索引使用了Solr分布式索引框架来做,Solr是一个开源的全文索引框架,从Nutch 1.3开始,其集成了这个索引架构2. 在哪里要可以下载到最新的Nutch?在下面地址中可以下载到最新的Nutch 1.3二进制包和源代码http://mirror.bjtu.edu.cn/apache//nutch/3. 如何配置Nutch? 3.1 对下载后的压缩包进行解压,然后cd $HOME/nutch-1.3/runtime/local 3.2 配置bin/nutch这个文件的权限,使用chmod +x bin/nutch 3.3 配置JAVA_HOME,使用export JAVA_HOME=$PATH4. 抓取前要做什么准备工作?4.1 配置http.agent.name这个属性,在conf目录下《prename=“code“class=“html“》《property》 《name》http.agent.name《/name》 《value》My Nutch Spider《/value》

使用Nutch能抓取针对性的内容吗

可以,修改一下nutch的插件就行了。由于好久没你那个nutch了,那时候还是1.0,不过nutch在spider这块的插件应该没什么变动。首先你要知道你要抓取的新闻的div修改parse-html插件,HtmlParser.java这个文件。因为我这边没有环境,刚从官网上下了个1.7的源码,对着里面的和你说。我们要修改的方法是private DocumentFragment parse(InputSource input) 这个方法,你可以debug一下,input里面,就是抓取的页面里的内容,(如果不是,你再从其他的方法里找找)然后创建一个分析input的方法。在里面用htmlparser把你要的结构拿出来。不过htmlarser有BUG,而且很久都没有更新了,建议你用Jsoup。我的日志里面用的是htmlparser,所以你改改就可以。public InputSource getinput(InputSource input){ String str=““; try { BufferedReader isr = new BufferedReader(newInputStreamReader(input.getByteStream(),“utf-8“)); while(isr.ready()){ str+=(char)isr.read(); } } catch (UnsupportedEncodingException e1) { // TODO Auto-generated catch block e1.printStackTrace(); } catch (IOException e) { // TODO Auto-generated catch block e.printStackTrace(); } try { Parser p = new Parser(str); p.setEncoding(“utf-8“); NodeFilter filter=new AndFilter(newTagNameFilter(“div“),new HasAttributeFilter(“class“,“mconleft“)); NodeList nodelist=p.parse(filter); NodeIterator it=nodelist.elements(); if(!it.hasMoreNodes()){ input.setByteStream(newByteArrayInputStream(str.getBytes(“utf-8“))); return input; } while(it.hasMoreNodes()){ Node node=(Node)it.nextNode(); input.setByteStream(newByteArrayInputStream(node.toHtml().getBytes(“UTF-8“))); } } catch (ParserException e) { // TODO Auto-generated catch block e.printStackTrace(); } catch (UnsupportedEncodingException e) { // TODO Auto-generated catch block e.printStackTrace(); } return input; }从代码上你能看到,我这里只抓取 DIV的class叫mconleft的。把你要抓取的新闻的div替换这块就可以了,然后将方法应用的parse(InputSource input)里面,然后从新ant一下nutch,把war包放到tomat下面试试。基本上就是这样了,可能还有其他的更简单的方法。当时急着用nutch,就没具体的研究,现在也不弄了,呵呵纯手打,希望能帮到你

nutch和elasticsearch的区别

网络爬虫架构在Nutch+Hadoop之上,是一个典型的分布式离线批量处理架构,有非常优异的吞吐量和抓取性能并提供了大量的配置定制选项。由于网络爬虫只负责网络资源的抓取,所以,需要一个分布式搜索引擎,用来对网络爬虫抓取到的网络资源进行实时的索引和搜索。搜 索引擎架构在ElasticSearch之上,是一个典型的分布式在线实时交互查询架构,无单点故障,高伸缩、高可用。对大量信息的索引与搜索都可以在近 乎实时的情况下完成,能够快速实时搜索数十亿的文件以及PB级的数据,同时提供了全方面的选项,可以对该引擎的几乎每个方面进行定制。支持RESTful 的API,可以使用JSON通过HTTP调用它的各种功能,包括搜索、分析与监控。此外,还为Java、PHP、Perl、Python以及Ruby等各 种语言提供了原生的客户端类库。网络爬虫通过将抓取到的数据进行结构化提取之后提交给搜索引擎进行索引,以供查询分析使用。由于搜索引擎的设计目标在于近乎实时的复杂的交互式查询,所以搜索引擎并不保存索引网页的原始内容,因此,需要一个近乎实时的分布式数据库来存储网页的原始内容。分布式数据库架构在Hbase+Hadoop之上,是一个典型的分布式在线实时随机读写架构。极强的水平伸缩性,支持数十亿的行和数百万的列,能够对网络爬虫提交的数据进行实时写入,并能配合搜索引擎,根据搜索结果实时获取数据。网 络爬虫、分布式数据库、搜索引擎均运行在普通商业硬件构成的集群上。集群采用分布式架构,能扩展到成千上万台机器,具有容错机制,部分机器节点发生故障不 会造成数据丢失也不会导致计算任务失败。不但高可用,当节点发生故障时能迅速进行故障转移,而且高伸缩,只需要简单地增加机器就能水平线性伸缩、提升数据 存储容量和计算速度。网络爬虫、分布式数据库、搜索引擎之间的关系:1、网络爬虫将抓取到的HTML页面解析完成之后,把解析出的数据加入缓冲区队列,由其他两个线程负责处理数据,一个线程负责将数据保存到分布式数据库,一个线程负责将数据提交到搜索引擎进行索引。2、搜索引擎处理用户的搜索条件,并将搜索结果返回给用户,如果用户查看网页快照,则从分布式数据库中获取网页的原始内容。整体架构如下图所示:爬虫集群、分布式数据库集群、搜索引擎集群在物理部署上,可以部署到同一个硬件集群上,也可以分开部署,形成1-3个硬件集群。网络爬虫集群有一个专门的网络爬虫配置管理系统来负责爬虫的配置和管理,如下图所示:搜 索引擎通过分片(shard)和副本(replica)实现了高性能、高伸缩和高可用。分片技术为大规模并行索引和搜索提供了支持,极大地提高了索引和搜 索的性能,极大地提高了水平扩展能力;副本技术为数据提供冗余,部分机器故障不影响系统的正常使用,保证了系统的持续高可用。有2个分片和3份副本的索引结构如下所示:一个完整的索引被切分为0和1两个独立部分,每一部分都有2个副本,即下面的灰色部分。在 生产环境中,随着数据规模的增大,只需简单地增加硬件机器节点即可,搜索引擎会自动地调整分片数以适应硬件的增加,当部分节点退役的时候,搜索引擎也会自 动调整分片数以适应硬件的减少,同时可以根据硬件的可靠性水平及存储容量的变化随时更改副本数,这一切都是动态的,不需要重启集群,这也是高可用的重要保 障。


声明:本文版权归原作者所有,转载文章仅为传播更多信息之目的,如作者信息标记有误,请第一时间联系我们修改或删除,谢谢。

上一篇: 广州队赢得中超冠军次数,广州队赢得中超冠军次数统计(2次亚冠至今无人能及)

下一篇: 微信公众号签到功能怎么添加和使用?微信群怎么设置签到功能



猜你感兴趣

推荐阅读

网站内容来自网络,如有侵权请联系我们,立即删除! | 软文发布 | 粤ICP备2021106084号