• ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:HTMLを解析し一部書き換えたい)

HTMLの書き換えで困っています!解析方法やタグの抽出方法を教えてください

このQ&Aのポイント
  • javaでプロキシー処理をするプログラムを書いているのですが、HTMLの書き換えで困っています。
  • タグの書き換えをする為、jsoupでHTMLを解析しているのですが、「&」が「&」に変換されてしまいます。
  • HTMLパーサーとしてJsoupの他に、HtmlCleaner、NekoHTML、Jericho、HTML Parserがありますが、タグの抽出方法のサンプルを見つけることができず使えませんでした。

質問者が選んだベストアンサー

  • ベストアンサー
  • teketon
  • ベストアンサー率65% (141/215)
回答No.2

> Jerichoでタグの書き換えができるサンプルがどこかに無いでしょうか? 基本的にParserとは解析だけ(Read Only)で、書き換え(Write)はありません。 Jerichoもさらっと見た感じ、書き換えはできないようです。 記述されているプロキシー機能がよく分からない (プロキシーパターン、プロキシーサーバなど思いつきすぎる)ので、 そちらの説明を行い、よりよいやり方はないか?など アドバイスを求めたほうがいいかもです。

miruha2011
質問者

お礼

ご回答ありがとうございます。 ライブラリはきれいさっぱり諦めて自分で作ることにします。

その他の回答 (1)

  • teketon
  • ベストアンサー率65% (141/215)
回答No.1

URLの解釈は実体参照なので、&から&へと変換をするのはパーサとして正しい動作です。 文字列上は&ですが、ブラウザはこれを&と解釈します。 (今回のrefreshの場合、https://xxx.yyy.com/index.html?a=1&b=2へリクエストを投げます。) どうしても&を出力したいならば、そもそもHTMLパーサを使用してはいけません。

miruha2011
質問者

お礼

ご回答ありがとうございます。 ご指摘のように、METAタグ内でエスケープされていてもブラウザの動作は正常でした。 そこで解析&変換されたHTMLを改めて見直したのですが、解析結果が滅茶苦茶になっていました。 scriptタグ内に不要(?)な文字列があるとダメなのかも知れません。 今回はプロキシー動作させるプログラムを書いていますので、不正なHTMLでもある程度許容できないといけないため、jsoupは使い物にならないと判断しました。 NekoとHtmlCleanerも同様に変換結果に難ありですので除外です。 Jerichoは良さそうです。 HTML Parserは確認できませんでした。 Jerichoでタグの書き換えができるサンプルがどこかに無いでしょうか?