htmlparser操作beanクラスhtmlページ要素抽出
2713 ワード
HtmlParserはVisitorとFilterの方法をカプセル化し,いくつかの一般的なhtml要素操作に対するbeanを定義し,一般的な要素の抽出操作を簡略化した.FilterBean、HTML LinkBean、HTML TextBean、LinkBean、StringBean、BeanyBabyなどがあります.ここでKBLineanとStringBeanのソースコードを示します.
1、LinkBeanコード
2、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();
}
}
}