I have a html file where I would like to insert a <meta>
tag between the <head>
& </head>
tags using python. If I open the file in append
mode how do I get to the relevant position where the <meta>
tag is to be inserted?
Use BeautifulSoup. Here's an example there a meta
tag is inserted right after the title
tag using insert_after():
from bs4 import BeautifulSoup as Soup
html = """
<html>
<head>
<title>Test Page</title>
</head>
<body>
<div>test</div>
</html>
"""
soup = Soup(html)
title = soup.find('title')
meta = soup.new_tag('meta')
meta['content'] = "text/html; charset=UTF-8"
meta['http-equiv'] = "Content-Type"
title.insert_after(meta)
print soup
prints:
<html>
<head>
<title>Test Page</title>
<meta content="text/html; charset=UTF-8" http-equiv="Content-Type"/>
</head>
<body>
<div>test</div>
</body>
</html>
You can also find head
tag and use insert() with a specified position:
head = soup.find('head')
head.insert(1, meta)
Also see:
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With