2016-02-19 55 views
5

BeautifulSoup.text.get_text()之间是否有区别?.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' 
+1

基本上你可以使用'get_text()'使用自定义分隔符,你应该使用它作为'.text'是一个私有属性,甚至没有记录。 – Selcuk

+0

@Selcuk是的,我个人一直使用'get_text()'主要是因为它明确记录了,但我看到很多bs4用户直接使用'.text'并对这个缺点感到好奇。谢谢! – alecxe

+1

嗯......那么'div.string'是什么? –

回答

12

看起来像.text is just a property that calls get_text。因此,不带参数地调用get_text.text是一样的。但是,get_text也可以支持各种关键字参数以改变其行为方式(separator,strip,types)。如果你需要更多的控制结果,那么你需要功能表单。

相关问题