Jericho HTML Parser 研究之属性标签–奥斯软件
Jericho HTML Parser 的功能确实比较强大,只能一点点不断发掘,今天以baidu法律为例,做了几个小例子,感觉Jericho HTML Parser 的功能确实强大。
/**
* 显示百度法律文章的具体内容。—奥斯软件
*
* @param segments
*/
private static void displayArticleContent(List<? extends Segment> segments) {
// Segment segment = segments.get(0);//取出特定标签的信息。
for (Segment segment : segments) {
List<Element> linkElements = segment.getAllElements();
for (Element linkElement : linkElements) {
String href = linkElement.getAttributeValue(”class”);
if (href == null || !href.equalsIgnoreCase(”f”))
continue;
// System.out.println(linkElement.getDebugInfo());
// 获得纯文本法律内容
// String
// label=linkElement.getContent().getTextExtractor().toString();
// 获得带有格式的法律内容
String label = linkElement.getContent().toString();
System.out.println(label);
}
}
System.out.println(”n*******************************************************************************n”);
}
用Jericho HTML Parser开源软件在解析的过程中,如何对source的URL进行批量处理:
利用下面的方法可以循环处理Href,从而利用Jericho HTML Parser不断展现其强大的功能。
private static void proceeParseHTML(List arrHref){
try{
for(int i=0;i< arrHref.size();i++){
String sourceUrlString = arrHref.get(i).toString();
if (sourceUrlString.indexOf(’:') == -1)
sourceUrlString = “file:” + sourceUrlString;
// MicrosoftTagTypes.register();
// MasonTagTypes.register();
Source source = new Source(new URL(sourceUrlString));
displayArticleContent(source.getAllElements(HTMLElementName.TD));
displayArticleTitle(source.getAllElements(HTMLElementName.TITLE));
//displayArticleHREF(source.getAllElements(HTMLElementName.A));
}
}catch(Exception e){
System.out.println(e.getMessage());
}
}