2016-08-03 8 views
2

で特定のタグの後にテキストを取得私は私は</p> <pre><code>page.content = <body><b>Title:</b> Test title</body> </code></pre> <p>のようなテキストを持っている美しいスープ

soup = BeautifulSoup(page.content) 
record_el = soup('body')[0] 
b_el = record_el.find('b',text='Title:') 

でタイトルタグを取得することができますが、どのように私は、Bタグの後のテキストを得ることができますか? body要素ではなく、その要素を参照することで、 "Title:"を含む要素の後にテキストを取得したいと考えています。あなたはb_elnext_sibling使用する場合がありますthe docsを参照

答えて

5

:この文脈で

b_el.next_sibling # contains " Test title" 

「兄弟は、」次のノードではなく、次の要素/タグです。要素の次のノードはテキストノードなので、必要なテキストが得られます。

+0

はい私はこれを試しましたが、AttributeErrorを取得しました: 'NavigableString'オブジェクトに 'next_sibling'属性がありません – carl

+0

これは本当に見つかりましたか? NavigableStringは、BeautifulSoupがTextNodesを呼び出す方法です。 b_elの種類を確認してください。 –

+0

私は上記の出力を – carl

関連する問題