⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 astroextractortest.java

📁 一个搜索引擎,希望对大家有用
💻 JAVA
字号:
package ch9.htmlparser;

import java.util.ArrayList;
import java.util.List;

import org.htmlparser.Node;
import org.htmlparser.NodeFilter;
import org.htmlparser.Parser;
import org.htmlparser.filters.AndFilter;
import org.htmlparser.filters.HasAttributeFilter;
import org.htmlparser.filters.HasChildFilter;
import org.htmlparser.filters.TagNameFilter;
import org.htmlparser.util.NodeList;
import org.htmlparser.visitors.TextExtractingVisitor;

public class AstroExtractorTest {
	public static void main(String[] args) {
		//标题
		String title;
		//星座
		String constellation;
		//主要内容
		String body;
		//总结
		String summary;
		try{
			Parser parser = new Parser ("http://astro.sina.com.cn/sagittarius.html");
			//设置编码方式
			parser.setEncoding("gb2312");
			//提取星座信息和总结信息的Filter	
			NodeFilter filter_constellation_summary =new AndFilter(new TagNameFilter("td"),
					new HasChildFilter(new TagNameFilter("b")));
			//提取标题的Filter	
			NodeFilter filter_title =new AndFilter(new TagNameFilter("font"),
					new HasAttributeFilter("class","f1491"));
			//提取内容的Filter
			NodeFilter filter_body =new AndFilter(new TagNameFilter("td"),
					new HasAttributeFilter("width","30%"));
			//过滤星座和总结信息
			NodeList nodelist=parser.parse(filter_constellation_summary);
			Node node_constellation=nodelist.elementAt(0);
			//提取星座信息
			constellation=node_constellation.getFirstChild().getNextSibling().toHtml();
			Node node_summary=nodelist.elementAt(1);
			NodeList summary_nodelist=node_summary.getChildren();
			//提取总结信息
			summary=summary_nodelist.elementAt(3).toHtml();
			//重置Parser
			parser.reset();
			//过滤标题信息
			nodelist=parser.parse(filter_title);
			Node node_title=nodelist.elementAt(0);
			//提取标题信息
			title=node_title.getNextSibling().getNextSibling().toHtml();
			parser.reset();
			//过滤内容信息
			nodelist=parser.parse(filter_body);
			Node node_body=nodelist.elementAt(0);
			//通过过滤得到的Html创建一个新Parser
			Parser body_parser=new Parser(node_body.toHtml());
			//创建一个TextExtractingVisitor,从网页中把所有标签去掉来提取文本
			TextExtractingVisitor visitor=new TextExtractingVisitor();
			//遍历所有节点
			body_parser.visitAllNodesWith(visitor);
			//提取文本信息
			body=visitor.getExtractedText();
			System.out.println(title.trim());
			System.out.println(constellation.trim());
			System.out.println(body.trim());
			System.out.println(summary.trim());
		}catch(Exception e){
			e.printStackTrace();
		}		
	}
}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -