2015-09-10 5 views
7

मैंने Pywikibot का उपयोग करके कुछ रिपोर्ट टूल बनाए हैं। जैसे-जैसे चीजें बढ़ रही हैं, अब रिपोर्ट खत्म करने में 2 घंटे तक लगते हैं, इसलिए मैं चीजों को गति देने की सोच रहा हूं। मुख्य विचार:Pywikibot कैसे गति करें?

  • अक्षम थ्रॉटलिंग, स्क्रिप्ट केवल पढ़ने के लिए है, इसलिए page.get(throttle=False) संभालती इस
  • कैश
  • प्रत्यक्ष डेटाबेस का उपयोग

दुर्भाग्य से मैं कैशिंग के बारे में ज्यादा प्रलेखन नहीं मिल रहा है और डीबी का उपयोग कोड में डुबकी लगने का एकमात्र तरीका है, और अच्छी तरह से, user-config.py में डेटाबेस पहुंच के बारे में सीमित जानकारी है। यदि कोई है, तो मुझे पाइविकिबोट कैशिंग और डायरेक्ट डीबी एक्सेस के बारे में अच्छा दस्तावेज कहां मिल सकता है?

और, चीजों को गति देने के अन्य तरीके हैं?

उत्तर

5

PreloadingGenerator का उपयोग करें ताकि पृष्ठों को बैचों में लोड किया जा सके। या MySQLPageGenerator यदि आप सीधे डीबी एक्सेस का उपयोग करते हैं।

उदाहरण देखें here

1

ऐसा लगता है कि pagegenerators वास्तव में चीजों को गति देने का एक अच्छा तरीका है। इसके लिए सबसे अच्छा दस्तावेज directly in the source है।

यहां तक ​​कि वहां भी यह स्पष्ट नहीं है कि MySQL कनेक्शन विवरण कहां रखा जाए। (यह उम्मीदपूर्वक अपडेट करेगा।)

0

pagegenerators से pagegenerators से कुछ प्रोग्रामों को गति देने का सबसे आसान तरीका है, जो ऑनलाइन विकी से बहुत कुछ पढ़ने की जरूरत है, क्योंकि अन्य उत्तरों पहले से ही इंगित कर चुके हैं।

वैकल्पिक तरीके हैं:

  • डाउनलोड विकी के एक डंप और स्थानीय स्तर पर यह पढ़ें। विकिमीडिया परियोजनाएं सप्ताह में एक बार अपडेट किए गए डंप की पेशकश करती हैं।
  • Wikimedia Labs पर एक खाता बनाएं और विकिपीडिया और अपडेट किए गए डंप के साथ तेज कनेक्शन से आनंद लेने के लिए वहां से काम करें।

throttle संशोधित करने से आपको अवरोध होने का खतरा हो सकता है यदि लक्ष्य विकी के खिलाफ नीति है - और मुझे डर है कि विकिपीडिया की ऐसी नीति है।

0

मैं प्रति सेकंड एक संपादन करने के लिए कमांड में "-pt: 1" विकल्प का उपयोग कर रहा हूं।

मैं वर्तमान में आदेश चल रहा हूँ

python pwb.py category add -pt:1 -file:WX350.txt -to:"Taken with Sony DSC-WX350" 

https://www.mediawiki.org/wiki/Manual:Pywikibot/Global_Options

+1

यह एक सीमा रेखा [कड़ी-केवल जवाब] (// meta.stackexchange.com/q/8231) है। आपको यहां अधिक जानकारी शामिल करने के लिए अपने उत्तर का विस्तार करना चाहिए, और केवल संदर्भ के लिए लिंक का उपयोग करना चाहिए। –

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