提案が必要です。有効なhtmlを取得してファイルに保存するプログラムがあります。このhtmlファイルを解析して、そのhtmlファイル内に文書化されているすべての画像を取得する方法が必要です。(例:/foo/bar.jpg)。これを実現するために使用できるhtml解析ライブラリはありますか?
5 に答える
上記の.jpgファイルだけが必要な場合は、ファイルリーダーと正規表現マッチャーを使用して文字列のような.jpgファイル名を検索するだけで、かなり良い結果(たとえば、誤検知が少ない)が得られるはずです。
完全なHTMLパーサーを使用している場合でも、すべての.jpgファイルを取得することはできません。ファイル名の一部は、解釈できないJavaScriptテキストによってアセンブルされている可能性があるため、完全でないことは、損失。
libXml2があります 。ただし、ファイルがHTMLではなくXHTMLである必要がある場合があります。
半分の答え:Tagsoupと呼ばれるJavaパーサーがあります。これは「JustKeep On Truckin'」で、山かっこで何でも解析し、アプリケーションに対して常に有効なイベントのセットを生成します。
私がこれに言及するのは、そのアイデアと、決定的にはその名前が、他の言語で同じ意図を持つ図書館によって採用されていることを知っているからです。現在Cバージョンを見つけることができませんが、その開始点でいくつかの独創的な検索を試してみると、運が良くなる可能性があります(要点は、パーサーの上にあるアプリケーションは、元のソースですが、整形式のXMLであるかのように見せかけて、XMLのようなことを実行できます)。
編集: oooh 、そして...そこにTaggleがあります(C ++ですが、おそらく十分に近いです、そしてその投稿はJavaからの移植が難しくなかったことを示唆しています)
グーグルによるガンボパーサー。これは、依存関係のない純粋なCのHTML5パーサーです。
libcurlを使用できます。これまで、HTML Webサイトの定期的な排泄物を解析して、特定の深さの写真や電子メールを取得するために使用しました。コードを見つけたら、いくつかのヒントを提供します。