2016-02-19 10 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

@ सेल्स्कुक हाँ, मैं व्यक्तिगत रूप से 'get_text()' का उपयोग कर रहा हूं क्योंकि ज्यादातर इसे स्पष्ट रूप से दस्तावेज किया गया है, लेकिन मुझे लगता है कि बहुत से बीएस 4 उपयोगकर्ता सीधे '.text' का उपयोग कर रहे हैं और उस के डाउनसाइड्स के बारे में उत्सुक हैं । धन्यवाद! – alecxe

+1

हम्म ... तो 'div.string' क्या है? –

उत्तर

12

यह .text is just a property that calls get_text तरह दिखता है। इसलिए, तर्क के बिना get_text पर कॉल करना .text जैसा ही है। हालांकि, get_text यह बदलने के लिए विभिन्न कीवर्ड तर्कों का भी समर्थन कर सकता है कि यह कैसे व्यवहार करता है (separator, strip, types)। यदि आपको परिणाम पर अधिक नियंत्रण की आवश्यकता है, तो आपको कार्यात्मक रूप की आवश्यकता है।

संबंधित मुद्दे