/**
* 此实例用于采集tianya wenda的贴子及回复,组成一个map
*/
package org.apache.nutch.our;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
import org.jsoup.Jsoup;
import org.jsoup.nodes.Document;
import org.jsoup.nodes.Element;
import org.jsoup.select.Elements;
/**
* 页面解析
*
* @author LJ
*
*/
public class JsoupParse {
public static Map<String,List<String>> parser(String content) {
Map<String,List<String>> map = new HashMap<String,List<String>>();
Document doc = Jsoup.parse(content);
// Element body = doc.body();
Element titles = doc.select("div.wpcpsCSS").first();
String name = titles.ownText();
System.out.println("标题" + name);
// 获取标题内容
Element dep = doc.select("div[style~=(margin:2px 5px 3px 4px)]")
.first();
String description = dep.text();
System.out.println("标题内容" + description);
String mapString = name+","+description;
// 回复
//利用集合来装多个回复
List<String> rs = new ArrayList<String>();
Elements replys = doc.select("div[style~=(margin: 2px 5px 3px 4px;)]");
for (int i = 0; i < replys.size(); i++) {
Element e = replys.get(i);
String ry = e.text();
rs.add(ry);
System.out.println("回复内容: " + ry);
}
//把问与回复存入map
map.put(mapString, rs);
return map;
// 获取分类
// String pattern
// ="<a class='wpfitCSS wpfilCSS' id=hover title='[*]' href='label?lid=[(0-9a-zA-Z)*]'>";
// Element category = doc.getElementsMatchingOwnText(pattern).first();
// System.out.println(category.text());
// System.out.println(body);// 获取页面body内容
}
public static void main(String[] args) throws Exception {
//String url = "http://wenda.tianya.cn/wenda/thread?tid=15krbkptkho99qirlp0a5rf2dlrqk443dkhj7";
String url2 = "http://wenda.tianya.cn/wenda/thread?tid=15kra997o6kb9p17pvr5fpaj5j8n2ub65sgem";
String content = FileDownLoader.doGet(url2, "UTF-8");
parser(content);
// String content2 = FileDownLoader.doGet(url, "UTF-8");
// parser(content2);
}
}
注:通过查看jsoup API 可以对网页进行深入解析哈。
分享到:
相关推荐
Eclipse 是一个流行的Java集成开发环境(IDE),在这里被用于开发和管理Nutch 1.2项目。 Nutch 1.2 的主要功能包括: 1. **网络爬虫**:Nutch的核心功能是爬取互联网上的网页。它使用多线程和分布式计算技术,能够...
Nutch 1.2 版本相对于早期版本在性能和稳定性上有所提升,同时也支持更丰富的插件体系。 在描述中提到,这个压缩包包含了一个已经配置好的 Nutch 1.2 Java 工程,但由于文件大小限制,插件部分未能上传。Nutch 的...
### Nutch 1.2 源码阅读深入解析 #### Crawl类核心作用与流程概览 在深入了解Nutch 1.2源码之前,我们先明确Nutch的架构和工作流程。Nutch作为一款开源搜索引擎框架,其功能涵盖网页抓取、索引构建以及查询处理。...
Nutch 1.2是该项目的一个稳定版本,提供了许多改进和优化,使得它在搜索引擎构建、数据分析等领域具有广泛应用。 一、Nutch概述 Nutch是由Apache软件基金会开发的开源Web爬虫项目,主要用于抓取互联网上的网页并...
- 在 Order and Export 页面,找到 `nutch1.2/conf` 并将其置顶。 - 完成后点击 Finish,完成项目创建。 4. **解决编译警告**: - 如果在源码的某些部分出现红色叉号或警告信息,检查是否有未引用的类或包,必要...
nutch1.2测试文档
nutch官方简单案例,请版本是nutch-1.2.war
本文旨在详细介绍如何在Windows环境下搭建基于cygwin、MyEclipse 8.5、Nutch 1.2及Tomcat 6.0的开发环境,并对每个步骤进行深入解析。 #### 一、Cygwin的配置 **1.1 安装** Cygwin是一款用于Windows系统的Linux...
nutch Nutch是一个由Java实现的,刚刚诞生开放源代码(open-source)的web搜索引擎。 尽管Web搜索是漫游Internet的基本要求, 但是现有web搜索引擎的数目却在下降。 并且这很有可能进一步演变成为一个公司垄断了几乎...
然而,在实际使用过程中,由于编码问题,Nutch可能会出现部分网页乱码的情况。本篇文章将深入探讨这个问题,并提供具体的代码修复方案。 网页乱码通常是由于字符编码不匹配导致的。在Nutch中,当它抓取到不同编码...
nutch Nutch是一个由Java实现的,刚刚诞生开放源代码(open-source)的web搜索引擎。 尽管Web搜索是漫游Internet的基本要求, 但是现有web搜索引擎的数目却在下降。 并且这很有可能进一步演变成为一个公司垄断了几乎...
在Nutch 1.2中集成IKAnalyzer,需要修改NutchAnalysis.jj文件,将SIGRAM规则调整为支持连续的汉字,然后在代码中初始化IKTokenizer,使其能够处理输入的文本流。通过这种方式,Nutch现在能够对抓取的网页内容进行...
### Nutch 搜索引擎培训讲义关键知识点解析 #### 一、Nutch 1.2 版本配置与运行步骤 1. **环境搭建** - 在进行配置之前,确保已经安装了必要的软件,如Java环境(推荐使用Java 1.6以上版本)、Eclipse等开发工具...
总的来说,Nutch 的 Injector 部分是整个爬取流程的起点,它负责将输入的 URL 数据转化为可处理的形式,并且初始化这些 URL 在 CrawlDB 中的状态,为后续的抓取、解析和索引等步骤做好准备。通过理解这个过程,...
基于Apache Nutch 1.8和Htmlunit组件,实现对于AJAX加载类型页面的完整页面内容抓取解析。 According to the implementation of Apache Nutch 1.8, we can't get dynamic ...
此外,由于Nutch 1.2的Web界面在1.3版本后被移除,这意味着在更现代的Nutch版本中,你需要寻找其他方式来展示和交互索引结果,例如使用自定义的Web应用程序与Solr API交互。 总的来说,搭建Nutch Web开发环境是一个...
在描述中提到,MP3文件信息解析可以与Nutch结合,这可能是为了在爬取网页时识别和处理MP3链接,提取音频文件的元数据,从而丰富索引内容。Nutch的`parse-html`模块负责解析HTML文档,如果进行了定制,可能包含了针对...
Nutch 1.2 版本后,它开始使用 Ivy 进行依赖管理,方便构建和集成其他组件。 【Hadoop】 Hadoop 是一个分布式计算框架,用于处理和存储大量数据。在 Nutch 中,Hadoop 负责分布式爬虫的执行和数据处理。Nutch 使用 ...
在使用Nutch之前,你需要配置Nutch的运行环境,包括安装Java、设置Hadoop(如果需要分布式爬取)、下载和编译Nutch源代码。还需要配置Nutch的`conf/nutch-site.xml`文件,指定抓取策略、存储路径、爬虫范围等参数。 ...