生成一个种子文件夹,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() // 生成结果
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)