使用します.パーパー

5533 ワード

htmlパーパーは解析)のjavaフレームであり、必要な内容をウェブページから抽出して、ウェブページの爬虫類や簡単なデータ抽出器として利用することができます.
フレームホーム:http://htmlparser.sourceforge.net/
 
jtidyを見ましたが、これと同じ機能です.しかし、parserはもっと簡単なようです.解析して中国語を支持します.符号化が便利です.
学習リソース:
http://www.ibm.com/developerworks/cn/java/l-html-parser/
http://allenj2ee.javaeye.com/blog/222454
http://www.blogjava.net/amigoxie/archive/2008/01/18/176200.html
 
htmlパーサーは主に一つのパーパーパーを使ってウェブページを解析し、フィルタfilterまたはvisitorを通じて必要なノードにアクセスし、現在使用されているバージョンは1.6です.
htmlパーサーは再帰的な方法でノードを階層的に選択するために使用されるので、フィルタとvisitorを使用する時はtrueを追加してサブ要素のクエリをサポートする必要があります.そうでなければ、デフォルトは現在のノードだけを調べます.
 
 

  
  
Parser parser = new Parser( " http://www.baidu.com " );
 
これは最も簡単なコードで、パーザーの構造関数を通して解析を必要とするウェブサイトに入り、パーザーオブジェクトを生成します.
パーザーオブジェクトを通して、一連の要素を解析することができます.
 
filter:
filterはフィルタです.私たちは異なるフィルタを使って、所望の異なる結果を得ます.
すべてのフィルタはNodefilterとインターフェースを実現します.
ここで最も一般的なのはcssセレクタフィルタ、文字列選択フィルタ、ノードタイプ選択フィルタ、タグ名フィルタ(TagNameFilter)などです.
使用html parser_第1张图片
使用方法は:
newフィルタ

  
  
NodeFilter filter = new CssSelectorNodeFilter( " .cp_kind " );
フィルタを解析が必要なパーパーまたはnodeListに入れます.trueは再帰的フィルタリングを表します.デフォルトはfalseです.
 

  
  
NodeList allProductList = nodeList.extractAllNodesThatMatch(filter, true );
 
 
 
visitor:
visitorは、htmlページのどの部分にアクセスするかを定義する標準的なアクセス機です.
例えば一番よく使うhttml Page
 


コード

   
   
HtmlPage visitor = new HtmlPage(parser);

parser.visitAllNodesWith(visitor);

String textInPage
= visitor.getTitle();
System.out.println(textInPage);

// get body
NodeList nodelist = visitor.getBody();
System.out.print(nodelist.asString().trim());
 
これでbodyを分離できます.
 
ヴィシトのデフォルト継承とNodevisitor
使用html parser_第2张图片
一番よく使われているのはhttml pageとtagfindingvisitorです.
 
実は、パーパーは使いにくくないです.ウェブページのルールが千変万化して、解析するのは難しいです.