![](/img/trans.png)
[英]How to open multiple .html files AND remove tags with Python (pyCharm)
[英]Remove matched tags in html files?
我有一些html文件,每个文件都包含
<td id="MenuTD" style="vertical-align: top;">
...
</td>
...
可以包含任何内容,并且</td>
匹配<td id="MenuTD" style="vertical-align: top;">
。 我想从html文件中删除此部分。
同样,我可能还想删除文件中的其他一些标签。
如何使用Python编程?
我在看python 2.7中的HTMLParser
模块,但是还没有弄清楚是否有帮助。
您可以使用BeautifulSoup完成此操作。 您有两个选择,具体取决于您要对要删除的元素执行的操作。
设定:
from bs4 import BeautifulSoup
html_doc = """
<html>
<header>
<title>A test</title>
</header>
<body>
<table>
<tr>
<td id="MenuTD" style="vertical-align: top;">
Stuff here <a>with a link</a>
<p>Or paragraph tags</p>
<div>Or a DIV</div>
</td>
<td>Another TD element, without the MenuTD id</td>
</tr>
</table>
</body>
</html>
"""
soup = BeautifulSoup(html_doc)
extract()
方法。 使用此方法,您将保留提取的元素的副本,以便以后在应用程序中使用它: 码:
menu_td = soup.find(id="MenuTD").extract()
此时,您要删除的元素已保存到menu_td
变量中。 随心所欲地做。 但是, soup
变量中的HTML不再包含您的元素:
print(soup.prettify())
输出:
<html>
<header>
<title>
A test
</title>
</header>
<body>
<table>
<tr>
<td>
Another TD element, without the MenuTD id
</td>
</tr>
</table>
</body>
</html>
MenuTD
元素中的MenuTD
内容均已删除。 您可以看到它仍然在menu_td
变量中:
print(menu_td.prettify())
输出:
<td id="MenuTD" style="vertical-align: top;">
Stuff here
<a>
with a link
</a>
<p>
Or paragraph tags
</p>
<div>
Or a DIV
</div>
</td>
.decompose()
。 如果不需要已删除元素的副本,则可以利用此功能从文档中删除它并销毁其内容。 码:
soup.find(id="MenuTD").decompose()
它不返回任何内容(与.extract()
不同)。 但是,它确实从文档中删除了该元素:
print(soup.prettify())
输出:
<html>
<header>
<title>
A test
</title>
</header>
<body>
<table>
<tr>
<td>
Another TD element, without the MenuTD id
</td>
</tr>
</table>
</body>
</html>
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.