में एचटीएमएल पार्स करने के लिए पैकेज में बनाया गया है, मुझे xml के लिए sax और xml.minidom के लिए HTMLParser मिला। मेरे पास एक अच्छी तरह से गठित एचटीएमएल है इसलिए मुझे एक बहुत मजबूत पार्सर की आवश्यकता नहीं है - कोई सुझाव?पायथन: क्या डोम
उत्तर
BeautifulSoup पर एक नज़र डालें। एचटीएमएल पार्सिंग में यह लोकप्रिय और उत्कृष्ट है।
मैं lxml की अनुशंसा करता हूं। मुझे सुंदर सूप पसंद है, लेकिन बाद में रिलीज के साथ आमतौर पर रखरखाव के मुद्दे और संगतता मुद्दे हैं। मैं lxml का उपयोग कर खुश हूँ।
बाद में: सबसे अच्छा सिफारिशों lxml, html5lib, या BeautifulSoup 3.0.8 उपयोग करने के लिए कर रहे हैं। सुंदर सूप 3.1.x पाइथन 3.x के लिए है और पहले पाइथन संस्करणों, as noted on the BeautifulSoup website के साथ समस्याएं ज्ञात हैं।
इयान बाइकिंग में 0xहै lxml का उपयोग करने पर।
एलिमेंटट्री एक और सिफारिश है, लेकिन मैंने इसका कभी भी उपयोग नहीं किया है।
2012-01-18: किसी ने आकर मुझसे और बार्तोज़ downvote क्योंकि हम अजगर पैकेज है कि आसानी से प्राप्त कर रहे हैं, लेकिन अजगर वितरण का हिस्सा नहीं की सिफारिश का फैसला किया है। तो अत्यधिक शाब्दिक स्टैक ओवरफ्लॉवर के लिए: "आप xml.dom.minidom का उपयोग कर सकते हैं, लेकिन विकल्पों में से कोई भी इसकी सिफारिश नहीं करेगा।"
इसके लायक होने के लिए, मैंने एलिमेंट ट्री और एक्सएमएल मिनीडॉम दोनों का उपयोग करके कुछ HTML को पार्स करने का प्रयास किया, और दोनों स्क्रिप्ट टैग (जावास्क्रिप्ट) में पार्स त्रुटियों के साथ दबाए गए! – Michael
मैंने अभी xml.dom.minidom के एक कामकाजी उदाहरण के साथ एक उत्तर जोड़ा है। कुछ परिस्थितियों में, बाहरी मॉड्यूल स्थापित करना बोझिल या असंभव है। इसके अलावा मूल प्रश्न पूछा गया है। – velotron
डीओएम ऑब्जेक्ट्स को संभालने के लिए, आप पाइथन के लिए HTMLDOM का उपयोग कर सकते हैं।
सुंदर सूप और एलएक्सएमएल बहुत अच्छे हैं, लेकिन सवाल यहां निर्मित नहीं हैं क्योंकि सवाल बिल्टिन के बारे में है। एचटीएमएल स्ट्रिंग को पार्स करने के लिए बिल्टिन minidom मॉड्यूल का उपयोग करने का एक उदाहरण यहां दिया गया है। CPython 3.5.2 के साथ परीक्षण किया गया:
from xml.dom.minidom import parseString
html_string = """
<!DOCTYPE html>
<html><head><title>title</title></head><body><p>test</p></body></html>
"""
# extract the text value of the document's <p> tag:
doc = parseString(html_string)
paragraph = doc.getElementsByTagName("p")[0]
content = paragraph.firstChild.data
print(content)
- 1. डोम
- 2. डोम
- 3. डोम
- 4. डोम
- 5. डोम-आधारित एक्सएसएस क्या है?
- 6. एचटीएमएल डोम
- 7. डोम तत्व
- 8. एक्सएमएल डोम
- 9. डोम घटना
- 10. डोम चेंज
- 11. जावा डोम
- 12. जावा डोम
- 13. डोम पार्सर
- 14. jQuery.click डोम
- 15. क्या $ (यह) डोम से पूछता है?
- 16. फायरबग डोम रंग का क्या अर्थ है?
- 17. क्या डोम उत्परिवर्तन पर्यवेक्षकों को डोम उत्परिवर्तन घटनाओं से धीमा है?
- 18. एचटीएमएल और डोम
- 19. राइनो और डोम समर्थन
- 20. .NET HTML डोम पार्सर?
- 21. डोम बनाम सैक्स - एक्सएमएल
- 22. डोम और एचटीएमएल (एपीआई)
- 23. पीएचपी एचटीएमएल डोम पार्सर
- 24. जावा/डोम: नोड
- 25. जावास्क्रिप्ट साफ़ डोम
- 26. डोजो: डोम नोड
- 27. बुनियादी डोम चेनिंग
- 28. सरल HTML डोम
- 29. जावास्क्रिप्ट डोम मैनिपुलेशन
- 30. google.load खाली डोम/स्क्रीन
यह में बनाया नहीं है अगर मैं गलत – Guy
नहीं, यह नहीं है में निर्मित नहीं कर रहा हूँ। लेकिन आप आसानी से easy_install का उपयोग करके इसे इंस्टॉल कर सकते हैं या बस वेबसाइट से डाउनलोड कर सकते हैं और PythonPATH में डाल सकते हैं। पूरे सुंदर सूप एक फ़ाइल में निहित है, इसलिए यह एक बोझ नहीं है। – Bartosz
सुंदर सूप को गंदे HTML को पार्स करना है जो "बहुत अच्छी तरह से गठित" नहीं है। – tbz