[解決済み] HTMLをインデント付きでファイルにプリティプリントする方法
2023-03-23 08:55:56
質問
私は lxml.html を使ってHTMLを生成しています。私は最終結果をHTMLファイルに(インデント付きで)きれいに印刷したいのです。どのようにそれを行うのですか?
これは、私が今まで試して得たものです。
import lxml.html as lh
from lxml.html import builder as E
sliderRoot=lh.Element("div", E.CLASS("scroll"), style="overflow-x: hidden; overflow-y: hidden;")
scrollContainer=lh.Element("div", E.CLASS("scrollContainer"), style="width: 4340px;")
sliderRoot.append(scrollContainer)
print lh.tostring(sliderRoot, pretty_print = True, method="html")
見ての通り、私は
pretty_print=True
属性を使っています。これでインデントされたコードが得られると思ったのですが、実際には役に立ちません。これは出力です。
<div style="overflow-x: hidden; overflow-y: hidden;" class="scroll"><div style="width: 4340px;" class="scrollContainer"></div></div>
どのように解決するのですか?
結局 ビューティフルスープ を直接使うことにしました。それは何かというと lxml.html.soupparser がHTMLのパースに使っているものです。
BeautifulSoupにはprettifyメソッドがあり、まさにそのとおりのことをしてくれます。これは、適切なインデントとすべてでHTMLをきれいにするものです。
BeautifulSoupはHTMLを修正しないので、壊れたコードは壊れたままです。しかし、この場合、コードはlxmlによって生成されているので、HTMLコードは少なくとも意味的に正しいはずです。
私の質問で与えられた例では、私はこれをしなければならないでしょう。
from BeautifulSoup import BeautifulSoup as bs
root = lh.tostring(sliderRoot) #convert the generated HTML to a string
soup = bs(root) #make BeautifulSoup
prettyHTML = soup.prettify() #prettify the html
関連
-
[解決済み] JavaScriptで要素のクラスを変更するにはどうすればよいですか?
-
[解決済み] JavaScriptでJSONをきれいに印刷する
-
[解決済み] Pythonでファイルやフォルダを削除する方法は?
-
[解決済み] リンクのように動作するHTMLボタンを作成する方法
-
[解決済み] 改行やスペースを入れずに印刷する方法
-
[解決済み] JSONファイルをprettyprintする方法は?
-
[解決済み] オブジェクトのリストに特定の属性値を持つオブジェクトが含まれているかどうかをチェックする
-
[解決済み] Pythonによる一対のクロスプロダクト [重複] (英語)
-
[解決済み] Flaskで非同期タスクを作る
-
[解決済み] Alembicアップグレードスクリプトでインサートやアップデートを実行するにはどうすればよいですか?
最新
-
nginxです。[emerg] 0.0.0.0:80 への bind() に失敗しました (98: アドレスは既に使用中です)
-
htmlページでギリシャ文字を使うには
-
ピュアhtml+cssでの要素読み込み効果
-
純粋なhtml + cssで五輪を実現するサンプルコード
-
ナビゲーションバー・ドロップダウンメニューのHTML+CSSサンプルコード
-
タイピング効果を実現するピュアhtml+css
-
htmlの選択ボックスのプレースホルダー作成に関する質問
-
html css3 伸縮しない 画像表示効果
-
トップナビゲーションバーメニュー作成用HTML+CSS
-
html+css 実装 サイバーパンク風ボタン
おすすめ
-
[解決済み] 2つの線分が交差しているかどうかを確認するにはどうすればよいですか?
-
[解決済み] Flaskで1時間ごとに関数を実行するようにスケジュールするには?
-
[解決済み] Djangoで2つの日付の間を選択する
-
[解決済み] バブルソートの宿題
-
[解決済み] サブフォルダからのインポートモジュール
-
[解決済み] Python Empty Generator 関数
-
[解決済み] Pythonでファイルの読み込みと上書きをする
-
[解決済み] 単純な文字列からtimedeltaオブジェクトを作成する方法
-
[解決済み] djangoのQueryDictをPythonのDictに変更するには?
-
[解決済み] Pythonの辞書にあるスレッドセーフについて