【问题标题】:Inserting into a html file using python使用python插入一个html文件
【发布时间】:2013-10-08 00:42:37
【问题描述】:

我有一个 html 文件,我想使用 python 在 <head></head> 标签之间插入一个 <meta> 标签。如果我以append 模式打开文件,如何到达要插入<meta> 标签的相关位置?

【问题讨论】:

  • 您所描述的不是附加,而是插入(正如您自己所说)。附加模式允许您添加到文件的末尾,因此在这里没有帮助。

标签: python html html-parsing


【解决方案1】:

使用BeautifulSoup。这是一个示例,使用insert_after()title 标记之后插入一个meta 标记:

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)

另见:

【讨论】:

  • 一种方法:使用 open("/file/name.html", "r") soup = Soup(file) 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) with open("/file /name.html", "w") as f: f.write(str(soup)) 它对我有用,谢谢。
【解决方案2】:

你需要一个像这里公开的Python and HTML Processing这样的xml操作库,你不能只打开文件并尝试追加它。

希望对你有帮助。

【讨论】:

    猜你喜欢
    • 2014-01-19
    • 2020-07-27
    • 2021-03-08
    • 1970-01-01
    • 1970-01-01
    • 2021-08-21
    • 2021-04-27
    • 2019-01-27
    • 2021-05-08
    相关资源
    最近更新 更多