1. ホーム
  2. python

[解決済み] この要素からテキストを抽出するだけで、その子要素は抽出しません。

2023-05-20 08:09:04

質問

スープの一番上の要素からテキストだけを抽出したいのですが、soup.textはすべての子要素のテキストも与えてしまいます。

私は

import BeautifulSoup
soup=BeautifulSoup.BeautifulSoup('<html>yes<b>no</b></html>')
print soup.text

これに対する出力は yesno . 私は単に'yes'が欲しいのです。

これを実現する最善の方法は何でしょうか?

編集 : また yes をパースする際に出力されるようにしたい。 <html><b>no</b>yes</html> '.

どのように解決するのですか?

どうなんでしょう .find(text=True) ?

>>> BeautifulSoup.BeautifulSOAP('<html>yes<b>no</b></html>').find(text=True)
u'yes'
>>> BeautifulSoup.BeautifulSOAP('<html><b>no</b>yes</html>').find(text=True)
u'no'

EDITです。

私はあなたが今欲しいものを理解したと思います。これを試してみてください。

>>> BeautifulSoup.BeautifulSOAP('<html><b>no</b>yes</html>').html.find(text=True, recursive=False)
u'yes'
>>> BeautifulSoup.BeautifulSOAP('<html>yes<b>no</b></html>').html.find(text=True, recursive=False)
u'yes'