9

このhtmlソースから:

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

テキストを抽出したいCategory:

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>

「テキストノード」が最初の子として利用できることを期待しています。これを解決する方法について何か提案はありますか?

4

1 に答える 1

16

私は以下があなたが望むことをするべきだとかなり確信しています

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

これにより、NavigableStringインスタンスとほぼ同じインスタンスが返されますが、Unicodeオブジェクトを取得するためにそれをunicode呼び出すことができます。unicode

これをテストしてお知らせできるかどうかを確認します。

編集:私はそれが機能することを確認しました:

>>> 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: '
>>> 
于 2012-04-14T14:53:28.663 に答える