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>
を削除することはできません。