htmlparser操作beanクラスhtmlページ要素抽出

2713 ワード

HtmlParserはVisitorとFilterの方法をカプセル化し,いくつかの一般的なhtml要素操作に対するbeanを定義し,一般的な要素の抽出操作を簡略化した.FilterBean、HTML LinkBean、HTML TextBean、LinkBean、StringBean、BeanyBabyなどがあります.ここでKBLineanとStringBeanのソースコードを示します.
1、LinkBeanコード
import java.net.URL;
import java.util.HashSet;
import java.util.Set;

import org.htmlparser.Node;
import org.htmlparser.NodeFilter;
import org.htmlparser.Parser;
import org.htmlparser.beans.LinkBean;
import org.htmlparser.filters.NodeClassFilter;
import org.htmlparser.filters.OrFilter;
import org.htmlparser.tags.ImageTag;
import org.htmlparser.tags.LinkTag;
import org.htmlparser.util.NodeList;
import org.htmlparser.util.ParserException;

public class UrlFilter {
	//LinkBean   
    public  Set<String> LinkBean(String src,String urlFilters) throws Exception {  
    	Set<String> links = new HashSet<String>();
    	LinkBean linkBean = new LinkBean();  
        linkBean.setURL(src);  
        URL[] urls = linkBean.getLinks();  
        for (int i = 0; i < urls.length; i++) { 
           String url=urls[i].toString();
           String[] UrlFilters=urlFilters.trim().split(",");
           for (String urlFilter : UrlFilters)
		if(url.startsWith(urlFilter)) links.add(url);
        }  
        return links;
    }  
	
	public static void main(String[]args) throws Exception{
		UrlFilter uf=new UrlFilter();
		String strUrlFilters="https://www.rizhiyi.com";
		Set<String> links=uf.LinkBean("https://www.rizhiyi.com/",strUrlFilters);
		for(String link:links)
			System.out.println(link);
	}
}

2、StringBeanコード
import java.net.URL;
import org.htmlparser.Node;
import org.htmlparser.Parser;
import org.htmlparser.beans.StringBean;
import org.htmlparser.util.NodeList;
import org.htmlparser.util.ParserException;
import org.htmlparser.util.SimpleNodeIterator;

import sp.SslUtils;

public class UrlParser {
     *  URL, URL  
     * @param url  URL  
     * @return RL  
	 * @throws Exception 
     */  
    public String getText(String url)throws Exception{  
		StringBean sb = new StringBean ();
		sb.setLinks (false);
		sb.setReplaceNonBreakingSpaces(true);
		sb.setCollapse(true);
		Parser parser = new Parser (url);
		parser.setEncoding("UTF-8");
		parser.reset ();
		parser.visitAllNodesWith (sb);
		String text = sb.getStrings ();
        return text;  
    }  
    
	public static void main(String[]args) throws Exception{
		UrlParser fd=new UrlParser();
		try {
			String str=fd.getText("https://www.rizhiyi.com/");
			System.out.println(str);
		} catch (ParserException e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		}
	}
}