2012-11-02 12 views
24

के लिए बच्चों मैं किसी वेबपेज कि Python-> ब्यूटीफुल सूप के साथ इस तरह दिखता है पार्स करने के लिए कोशिश कर रहा हूँ है पाते हैं। वर्तमान में मैं द्वाराब्यूटीफुल सूप विशेष div

alltd = soup.findAll('td') 


for td in alltd: 
    print td 

सभी divs प्राप्त कर सकते हैं लेकिन मैं वर्ग "tablebox" जो अभी भी शायद वापस आ जाएगी 30+ लेकिन 300 से अधिक प्रबंधनीय एक संख्या है में टीडीएस खोज करने के लिए है कि का दायरा कम करने के लिए कोशिश कर रहा हूँ +।

मैं उपरोक्त तस्वीर में हाइलाइट किए गए टीडी की सामग्री कैसे निकाल सकता हूं?

उत्तर

42

यह जानना उपयोगी है कि सुंदर तत्व एक तत्व के भीतर जो भी तत्व पाता है, उसके पास अभी भी वही प्रकार है जो मूल तत्व के रूप में होता है - यानी, विभिन्न विधियों को बुलाया जा सकता है।

soup = BeautifulSoup(html) 
divTag = soup.find_all("div", {"class": "tablebox"}): 

for tag in divTag: 
    tdTags = tag.find_all("td", {"class": "align-right"}) 
    for tag in tdTags: 
     print tag.text 

यह "align-सही" के वर्ग के साथ एक माता पिता div है कि वर्ग के साथ सभी टीडी टैग की सभी पाठ प्रिंट होगा:

तो यह आपके उदाहरण के लिए कुछ हद तक काम कर कोड है "tablebox"।

+1

पैरेंट लूप में, टैग 'div' तत्व सूप तत्व नहीं है, इसलिए मुझे लगता है कि यह एक त्रुटि करेगा, है ना? 'Div' तत्व में, इसमें 'find_all' नामक विधि नहीं है – LKM

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