2012-04-14 7 views
6

इस html स्रोत से पहले पाठ को निकालने के लिए:उपयोग BeautifulSoup पहले बच्चे टैग

<div class="category_link"> 
    Category: 
    <a href="/category/personal">Personal</a> 
</div> 

मैं यहाँ पाठ Category:

निकालने के लिए इच्छा अजगर/BeautifulSoup (का उपयोग करते हुए टिप्पणी के रूप में उत्पादन के साथ मेरी प्रयास कर रहे हैं - #)

parsed = BeautifulSoup(sample_html) 
parsed_div = parsed.findAll('div')[0] 
parsed_div.firstText() # <a href="/category/personal">Personal</a> 
parsed_div.first() # <a href="/category/personal">Personal</a> 
parsed_div.findAll()[0] # <a href="/category/personal">Personal</a> 

मुझे उम्मीद है कि पहले बच्चे के रूप में "टेक्स्ट नोड" उपलब्ध होगा। मैं इसे कैसे हल कर सकता हूं इस पर कोई सुझाव?

+1

'parsed_div.contents [0]' – Avaris

उत्तर

11

मैं काफी यकीन है कि निम्नलिखित आप क्या चाहते हैं

parsed.find('a').previousSibling # or something like that 

यह एक NavigableString उदाहरण है, जिसमें काफी एक unicode उदाहरण के रूप में ही बात है वापसी होगी क्या करना चाहिए हूँ, लेकिन आप के लिए उस पर unicode कॉल कर सकते हैं यूनिकोड ऑब्जेक्ट प्राप्त करें।

मैं देखता हूं कि मैं इसका परीक्षण कर सकता हूं और आपको बता सकता हूं।

संपादित: मैं बस की पुष्टि की है कि यह काम करता है:

>>> from BeautifulSoup import BeautifulSoup 
>>> soup = BeautifulSoup('<div class=a>Category: <a href="/">a link</a></div>') 
>>> soup.find('a') 
<a href="/">a link</a> 
>>> soup.find('a').previousSibling 
u'Category: ' 
>>> 
+0

बहुत बढ़िया! एक जादू की तरह काम किया –