2009-03-19 11 views
6

मेरे पास एक प्रोजेक्ट है जहां मैं किसी विशेष श्रेणी से संबंधित सभी विकिपीडिया लेख एकत्र करता हूं, विकिपीडिया से डंप खींचता हूं, और इसे हमारे डीबी में डालता हूं।क्या पाइथन का उपयोग करके पार्सर विकिपीडिया डंप फ़ाइलों को पार्सर/रास्ता उपलब्ध है?

तो मुझे सामान प्राप्त करने के लिए विकिपीडिया डंप फ़ाइल को पार्स करना चाहिए। क्या हमारे पास यह काम करने के लिए एक कुशल पार्सर है? मैं एक अजगर डेवलपर हूँ। तो मैं अजगर में किसी भी पार्सर पसंद करते हैं। यदि कोई सुझाव नहीं देता है और मैं इसे पाइथन में एक बंदरगाह लिखने की कोशिश करता हूं और इसे वेब पर योगदान देता हूं, तो अन्य व्यक्ति इसका उपयोग करते हैं या कम से कम इसे आजमाते हैं।

तो मैं चाहता हूं कि विकिपीडिया डंप फ़ाइलों को पार्स करने के लिए एक पाइथन पार्सर है। मैंने एक मैनुअल पार्सर लिखना शुरू किया जो प्रत्येक नोड को पार करता है और सामान पूरा करता है।

उत्तर

1

मैं लाइसेंसिंग के बारे में पता नहीं है उसी के लिए उदाहरण कोड नहीं है, लेकिन this अजगर में कार्यान्वित किया जाता है, और स्रोत भी शामिल है।

1

एक और अच्छा मॉड्यूल here से mwlib है - यह सब निर्भरता (कम से कम Windows पर) के साथ स्थापित करने के लिए एक दर्द है, लेकिन यह अच्छी तरह से काम करता है।

0

Wiki Parser विकिपीडिया डंप फ़ाइलों (~ 55 घंटे के सभी अंग्रेजी विकिपीडिया को पार्स करने के लिए 2 घंटे) के लिए एक बहुत तेज़ पार्सर है। यह एक्सएमएल उत्पन्न करता है जो सामग्री और आलेख संरचना दोनों को संरक्षित करता है।

तब आप XML आउटपुट के साथ जो कुछ भी चाहते हैं उसे करने के लिए पाइथन का उपयोग कर सकते हैं।

0

मैं दृढ़ता से mwxml की अनुशंसा करता हूं। विकीमीडिया नींव के एक शोध वैज्ञानिक, Aaron Halfaker द्वारा लिखित विकिमीडिया डंप को पार्स करने के लिए यह एक उपयोगिता है। इसके साथ

pip install mwxml 

प्रयोग स्थापित किया जा सकता है बहुत सहज है के रूप में documentation से इस उदाहरण द्वारा प्रदर्शन:

>>> import mwxml 

>>> dump = mwxml.Dump.from_file(open("dump.xml")) 

>>> print(dump.site_info.name, dump.site_info.dbname) 
Wikipedia enwiki 

>>> for page in dump: 
...  for revision in page: 
...  print(revision.id) 
... 
1 
2 
3 

यह data analysis utilities के अपेक्षाकृत बड़े समूह विकिमीडिया फाउंडेशन और अपने समुदाय से बाहर डाल का हिस्सा है ।

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