3

段落を含むHTMLのスニペットがあります。(タグを意味pします。)文字列を別の段落に分割したいと思います。例えば:

'''
<p class="my_class">Hello!</p>
<p>What's up?</p>
<p style="whatever: whatever;">Goodbye!</p>
'''

次のようになります。

['<p class="my_class">Hello!</p>',
 '<p>What's up?</p>'
 '<p style="whatever: whatever;">Goodbye!</p>']

これにアプローチするための良い方法は何でしょうか?

4

4 に答える 4

5

文字列に段落しか含まれていない場合は、巧妙に作成された正規表現とを使用して回避できる場合がありますre.split()。ただし、文字列がより複雑なHTMLである場合、または常に有効なHTMLであるとは限らない場合は、BeautifulSoupパッケージを確認することをお勧めします。

使用法は次のようになります:

from BeautifulSoup import BeautifulSoup 

soup = BeautifulSoup(some_html)

paragraphs = list(unicode(x) for x in soup.findAll('p'))
于 2010-02-16T22:28:27.937 に答える
2

HTMLを必要な形式に解析するために使用lxml.htmlします。これは、BeautifulSoupを推奨している人々と本質的に同じアドバイスですが、lxmlまだ活発に開発されており、BeatifulSoupの開発が遅れている点が異なります。

于 2010-02-16T22:33:20.807 に答える
0

BeautifulSoupを使用してHTMLを解析し、段落を繰り返し処理します。

于 2010-02-16T22:27:27.450 に答える
0

xml.etree(std lib)またはlxml.etree(enhanced)を使用すると、これを簡単に実行できますが、正確な構文を覚えていないため、これに対する答えは得られません。私はそれを同様のパッケージと混同し続けており、毎回新たに調べなければなりません。

于 2010-02-16T22:27:54.453 に答える