HTML ファイルの Head セクションに挿入する必要があるコードのセットを含むテキスト ファイルを挿入するコードを記述したいと考えています。フォルダーに何百もの HTML ファイルがあるため、手動で行いたくありません。
Head タグを検索し、その下に特定のテキスト ファイルを追加するようにコードに指示することはできますか?
どうすればこれを行うことができますか?
HTML ファイルの Head セクションに挿入する必要があるコードのセットを含むテキスト ファイルを挿入するコードを記述したいと考えています。フォルダーに何百もの HTML ファイルがあるため、手動で行いたくありません。
Head タグを検索し、その下に特定のテキスト ファイルを追加するようにコードに指示することはできますか?
どうすればこれを行うことができますか?
を使用できる場合sed
、これは検討できる解決策になる可能性があります。
for file in *.html; do sed -i.bak '/<head>/a\ADD YOUR TEXT HERE' $i; done
<head>
これにより、タグを含む行の次の行に「ADD YOUR TEXT」が書き込まれます。元のファイルには拡張子が追加され.bak
ます。
PS : 元のファイルが複雑で適切にフォーマットされた html が含まれていない場合、または追加するテキストが複雑な場合は、BeautifulSoup またはマークアップ言語を扱う特殊なライブラリを使用する必要があります。
あなたはhtmlで読んでいるので、次のように動作するElementTreeでこれを行うことをお勧めします:
import xml.etree.ElementTree as etree
html = etree.parse(file_path)
head = html.getroot().find('head')
# To insert a tag surrounding in <head>:
newtag = etree.Element("newtag", attrib={})
newtag.text = "Text inside newtag surrounding"
head.insert(0,newtag)
# To just insert a text inside the head tag surrounding:
head.text = newtext + head.text
html.write(new_file_path)