我想解析html页面的一部分,比如说
my_string = """
<p>Some text. Some text. Some text. Some text. Some text. Some text.
<a href="#">Link1</a>
<a href="#">Link2</a>
</p>
<img src="image.png" />
<p>One more paragraph</p>
"""
我将此字符串传递给 BeautifulSoup:
soup = BeautifulSoup(my_string)
# add rel="nofollow" to <a> tags
# return comment to the template
但是在解析 BeautifulSoup 的过程中会添加<html>
,<head>
和<body>
标签(如果使用 lxml 或 html5lib 解析器),我的代码中不需要这些。到目前为止,我发现避免这种情况的唯一方法是使用html.parser
.
我想知道是否有一种方法可以使用最快的解析器 lxml 摆脱冗余标签。
更新
最初我的问题被错误地问到了。现在我<div>
从示例中删除了包装器,因为普通用户不使用此标签。出于这个原因,我们不能使用.extract()
方法来摆脱<html>
,<head>
和<body>
标签。