2009-04-04 8 views
27

में एचटीएमएल पार्सिंग अगर मैं सुंदर सूप या एलएक्सएमएल का उपयोग नहीं कर सकता तो HTML को पार्स करने के लिए मेरी सबसे अच्छी शर्त क्या है? मेरे पास कुछ कोड है जो एसजीएमएललिब का उपयोग करता है लेकिन यह थोड़ा कम स्तर है और अब इसे हटा दिया गया है।पाइथन

मैं पसंद करूंगा कि यह खराब विकृत एचटीएमएल का पेट दर्द कर सकता है, हालांकि मुझे पूरा यकीन है कि अधिकांश इनपुट बहुत साफ होगा।

+1

यदि मैं पूछ सकता हूं, आप एलएक्सएमएल, या बीएस का उपयोग क्यों नहीं कर सकते? –

+1

मैं पूरी तरह से छेड़छाड़ करने वाले उत्तरों से बचने की कोशिश कर रहा था। सुंदर सूप से बचने के मेरे कारण बेहद बहस योग्य हैं लेकिन मैं इसे एक और दिन के लिए बचा रहा था! (एलएक्सएमएल से बचने के मेरे कारण सरल हैं - मैक ओएसएक्स या लिनक्स पर इसे स्थापित करने में पूरी विफलता :( –

+2

लिनक्स पर lxml को कैसे स्थापित करें: 'sudo apt-get libxml2-dev libxslt-dev python2.7 स्थापित करें -dev' ('python2.6-dev' अगर आप पायथन 2.6 का उपयोग करते हैं)। फिर 'सुडो पाइप lxml' स्थापित करें। – Jabba

उत्तर

10

पायथन के पास native HTML parser है, हालांकि टिडी रैपर निक सुझाव दिया गया है कि शायद एक ठोस विकल्प भी होगा। साफ एक बहुत ही आम पुस्तकालय, (सी में लिखा है?) है

+0

क्या कोई मुझे बता सकता है लोगों को देशी HTML पार्सर पर सुंदर सूप या एलएक्सएमएल का सुझाव क्यों दिया जाता है? – Shatu

2

शायद µTidylib आपकी आवश्यकताओं को पूरा करेगा?

1

http://www.xmlhack.com/read.php?item=1392 http://sourceforge.net/projects/pirxx/

http://pyxml.sourceforge.net/topics/

मैं अजगर के साथ अधिक अनुभव नहीं है, लेकिन मैं अतीत में (अपाचे नींव से) Xerces का इस्तेमाल किया है और पाया है कि यह बहुत उपयोगी हो सकते हैं। सीखने की अवस्था खराब नहीं है, हालांकि मैं एक अजगर परिप्रेक्ष्य से नहीं आ रहा हूं। मेरा सुझाव है कि आप इसे मानते हैं। (मैंने पहले दो लिंकों को शामिल किया है जिसमें पाइथन इंटरफेस पर ज़र्सेस पर चर्चा की गई है और आखिरी वाला "पायथन एक्सएमएल" पर पहला Google हिट है)।

+0

मुझे पता है कि आप एक HTML पार्सर चाहते हैं, लेकिन ये अच्छी शुरुआत स्थान होंगे। –

1

html5lib अच्छा है:
http://code.google.com/p/html5lib/

अद्यतन: ऊपर दिया गया लिंक टूटी हुई है। इसके बाद के संस्करण की एक तृतीय-पक्ष दर्पण, से https://github.com/html5lib/gcode-import

+0

हालांकि यह लिंक प्रश्न का उत्तर दे सकता है, लेकिन यहां उत्तर के आवश्यक हिस्सों को शामिल करना बेहतर है और संदर्भ के लिए लिंक प्रदान करना बेहतर है। केवल-लिंक के जवाब अमान्य हो सकते हैं लिंक पेज बदलता है। – dgw

+0

यह * लिंक * केवल एक लिंक नहीं है, @ डीजीडब्लू। इसमें लिंक्ड-टू लाइब्रेरी के नाम का उल्लेख करने वाली पूरी वाक्य है, और सीए में इस सवाल से, लाइब्रेरी का नाम * उत्तर का आवश्यक हिस्सा है। लिंक मरने पर कोई भी इसके लिए खोज कर सकता है। –

1

htql पहुँचा जा सकता है विकृत HTML से निपटने में अच्छा है:

http://htql.net/

2

आप मैक पर आसानी से और निर्बाध रूप से lxml और कई अन्य अजगर मॉड्यूल स्थापित कर सकते हैं (ओएस एक्स) पैलेट का उपयोग कर, जो MacPorts official GUI

मॉड्यूल नाम py27-lxml है। 1,2,3 के रूप में आसान है।