3

次のような HTML コードがあります。

<p>aaa</p>bbb
<p>ccc</p>ddd

「bbb」と「ddd」はどうすれば取得できますか?

4

2 に答える 2

1

各タグの後続の兄弟を読むことができますp(これはこのテキストに非常に固有のものであるため、状況に合わせて拡張できることを願っています):

In [1]: from bs4 import BeautifulSoup

In [2]: html = """\
   ...: <p>aaa</p>bbb
   ...: <p>ccc</p>ddd"""

In [3]: soup = BeautifulSoup(html)

In [4]: [p.next_sibling for p in soup.findAll('p')]
Out[4]: [u'bbb\n', u'ddd']

これにより、末尾の改行が取得されるため、必要に応じて削除できます。

In [5]: [p.next_sibling.strip() for p in soup.findAll('p')]
Out[5]: [u'bbb', u'ddd']

一般的な考え方は、ターゲット テキストの前にタグを配置し、次の兄弟要素 (テキストである必要があります) を見つけることです。

于 2013-01-08T04:44:14.597 に答える
-2

値 ('bbb'、'ddd') をタグ (as <span>)で囲むと簡単です。

次に、次を使用して取得できます:soup('span')

于 2013-01-08T04:40:29.850 に答える