タグ

tagsoupに関するkimukou_26のブックマーク (4)

  • [Android]tagSoup で Webスクレイピング

    tagSoup はHTMLパーサー。 AndroidのWebViewでも使われているらしい。 ただ、APIは公開されていないので、外部jarとして登録して使いました。 jar は公式サイトから Download できます。 http://ccil.org/~cowan/XML/tagsoup/ サイズも100kb未満で経済的。 使い方が、ちんぷんかんぷん。 一度、挫折しかけました。 こちらのサイトを参照しながら何とか実装。 http://d.hatena.ne.jp/Retrorocket/20110905/1315214059 http://www.beach5.net/2011/11/androidhtml-2.html http://nullmo.blog89.fc2.com/blog-entry-492.html 調べた限りだと方法は2つあります。 1.Transformして、タグ

  • Tagsoup HTMLパース時のエンコーディング - Kazzz's diary

    Tagsoupを使って、対象のURLからHTMLをパースするサービスを書いている。 InputStream ins; ContentHandler contentHandler; try { Parser parser = new Parser(); if ( contentHandler != null ) { parser.setContentHandler(contentHandler); } parser.setFeature(Parser.ignoreBogonsFeature, false); parser.setProperty(Parser.schemaProperty, HtmlParser.schema); parser.parse(new InputSource(new InputStreamReader(ins))); return parser; } catch

    Tagsoup HTMLパース時のエンコーディング - Kazzz's diary
  • AndroidによるHTMLのパース - Kazzz's diary

    先日書いたように、スクレイピングにはWebViewが使えるのだが、WebViewからjavascriptのメソッドを呼ぶ際にはどうしてもメインスレッドとは別スレッドで非同期で動作させる必要があるため、スクレイピング処理を外部からメソッドのように呼び出すことはできない。(スレッドをポーリングなどで監視したり、サービスからのコールバックを受けるようにすれば可能かもしれないが、非同期であることに変わりはない) となると、やはり真っ当にHTMLを順にパースしていくのが良かろうと思ったが、そもそも適当なHTMLパーサが無いのがWebViewを使う大きな理由の一つな訳で何を使うか悩む所だ。 Javaで使える比較的軽量なHTMLパーサといえば NekoHTML Tagsoup jTidy HtmlCleaner この辺か。一通り調べてみたが、結局Tagsoupを使用することにした。(次点はNekoHTM

    AndroidによるHTMLのパース - Kazzz's diary
  • ぬるもでら Android開発 #14 HTMLのパース

    NextTrain互換アプリであるjNTrainにWebからの時刻表取り込み機能を組み込めないかと研究中。 というわけで、先日JavaでのHTTP通信を試し、こちらは問題なさそう。 時刻表のURLまでたどり着ければ、時刻表データの含まれているHTMLファイルが取得できるわけですが、このままではデータとして扱いにくい。 HTMLは結局のところテキストファイルですので、一定の法則性を見つけ出して抜き出す文字列操作だけでも何とかなるのですが、ちゃんとHTML構文とかをたどっていったほうが後々仕様変更にも対応しやすいのではと、HTMLパースの方法を調べてみました。 JavaHTMLパーサにはいろんなものがあるようなのですが、AndroidのSDKでも使用されているというTagSoupというものを使ってみようかと前回の記事でも触れていました。 今回は、実際にTagSoupを使ってHTMLの読み込み

    kimukou_26
    kimukou_26 2011/12/28
    SAXって面倒(汗。でもデカいjar組み込みたくないしな〜
  • 1