.text和.get_text()之间的区别

29

BeautifulSoup 中,.text.get_text() 之间有什么区别?

获取元素文本时应该优先使用哪一个?

>>> from bs4 import BeautifulSoup
>>>
>>> html = "<div>text1 <span>text2</span><div>"
>>> soup = BeautifulSoup(html, "html.parser")
>>> div = soup.div
>>> div.text
'text1 text2'
>>> div.get_text()
'text1 text2'

3
基本上你可以使用 get_text() 来使用自定义分隔符,并且应该使用它,因为 .text 是一个私有属性,甚至没有记录在文档中。 - Selcuk
@Selcuk,是的,我个人大多数时候都在使用get_text(),因为它有明确的文档说明,但我发现很多bs4用户直接使用.text,所以我对这种做法的缺点感到好奇。谢谢! - alecxe
2
嗯...那么 div.string 是什么? - Remi Guan
1个回答

38

看起来 .text 只是调用了 get_text 方法的一个属性。因此,不带参数地调用 get_text 等同于使用 .text。然而,get_text 还可以支持各种关键字参数来改变其行为(如 separatorstriptypes)。如果需要更多对结果的控制,则需要使用函数形式。


关于这个链接,我认为它是line 296 - Momo
是的。可能因为我创建这篇文章很多年了,所以它可能被移动了一些。 - mgilson

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接