2012-04-14 8 views
6

前にテキストを抽出するために:私はここにテキストCategory:使用BeautifulSoupは、このHTMLソースからの最初の子タグ

を抽出したい

<div class="category_link"> 
    Category: 
    <a href="/category/personal">Personal</a> 
</div> 

はコメントとして出力でのPython/BeautifulSoupを(使用して私の試みです - 〜の後)#

parsed = BeautifulSoup(sample_html) 
parsed_div = parsed.findAll('div')[0] 
parsed_div.firstText() # <a href="/category/personal">Personal</a> 
parsed_div.first() # <a href="/category/personal">Personal</a> 
parsed_div.findAll()[0] # <a href="/category/personal">Personal</a> 

私は "テキストノード"を最初の子として利用できると考えています。どのように私はこれを解決することができます上の任意の提案?

+1

'parsed_div.contents [0]' – Avaris

答えて

11

私は次はあなたがかなりのunicodeインスタンスと同じ ものですNavigableStringインスタンスを返すだろうが、あなたがその上unicodeを呼び出すこと

parsed.find('a').previousSibling # or something like that 

欲しいものを行う必要がありますかなり確信していますユニコードオブジェクト を取得します。

私がこれをテストして知らせることができるかどうかがわかります。

EDIT:私はちょうどそれが動作することを確認:

>>> from BeautifulSoup import BeautifulSoup 
>>> soup = BeautifulSoup('<div class=a>Category: <a href="/">a link</a></div>') 
>>> soup.find('a') 
<a href="/">a link</a> 
>>> soup.find('a').previousSibling 
u'Category: ' 
>>> 
+0

すごいです!チャームのように働いた –

関連する問題