2013-10-01 38 views
1

У меня есть html-файл, где я хотел бы вставить тег <meta> между тегами <head> & </head> с использованием python. Если я открою файл в режиме append, как мне попасть в соответствующую позицию, где должен быть вставлен тег <meta>?Вставка в html-файл с использованием python

+6

Что вы описываете, это не добавление, оно вставляет (как вы сами заявляете). Режим добавления позволяет добавлять в конец файла и, следовательно, здесь не поможет. –

ответ

10

Использование BeautifulSoup. Вот пример там meta тег вставляется сразу после title тегов с помощью 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 

печатает:

<html> 
    <head> 
     <title>Test Page</title> 
     <meta content="text/html; charset=UTF-8" http-equiv="Content-Type"/> 
    </head> 
    <body> 
     <div>test</div> 
    </body> 
</html> 

Вы также можете найти head тег и использовать insert() с указанной позиции:

head = soup.find('head') 
head.insert(1, meta) 

Также см .:

+2

+1 для прекрасного супа, а не для регулярного выражения или какого-либо другого кощунственного метода ... – kevlar1818

0

Вам нужна библиотека для манипулирования XML как открытой здесь Python and HTML Processing, вы можете не только открыть файл и попытаться добавить его.

Надеюсь, это поможет.

Смежные вопросы