2016-02-19 87 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)。如果你需要更多的控制結果,那麼你需要功能表單。

相關問題