2011-08-25 9 views

उत्तर

34

देखें MediaWiki docs

इन पर इस धारा के प्रमुख मानकों हैं।

prop=revisions&rvprop=content&rvsection=0 

rvsection = 0 केवल मुख्य अनुभाग को वापस करने के लिए निर्दिष्ट करता है।

इस उदाहरण को देखें।

http://en.wikipedia.org/w/api.php?action=query&prop=revisions&rvprop=content&rvsection=0&titles=pizza

एचटीएमएल पाने के लिए आपको इसी तरह उपयोग कर सकते हैं क्रिया का उपयोग = पार्स http://en.wikipedia.org/w/api.php?action=parse&section=0&prop=text&page=pizza

ध्यान दें, कि आप किसी भी टेम्पलेट्स या Infoboxes निकाल देते करना होगा।

+0

क्या मुझे इसके मूल्य प्राप्त करने के बाद कार्रवाई = पार्स क्वेरी भेजनी है? – bbnn

+2

मैं इसका एक साफ पाठ प्राप्त करना चाहता हूं, क्या मुझे अपने आप पार्सर लिखना चाहिए? या ऐसा करने के लिए कुछ एपीआई क्वेरी हैं? धन्यवाद – bbnn

+0

इसलिए मुझे यहां से अपना खुद का पार्सर लिखना है, बहुत बहुत धन्यवाद! – bbnn

3

यदि आपको बड़ी संख्या में लेखों के लिए ऐसा करने की आवश्यकता है, तो वेबसाइट को सीधे पूछताछ करने के बजाय, विकिपीडिया डेटाबेस डंप डाउनलोड करने पर विचार करें और उसके बाद JWPL जैसे एपीआई के माध्यम से इसे एक्सेस करें।

24

अन्य प्रस्तावित समाधानों के लिए Is there a clean wikipedia API just for retrieve content summary? देखें। इस उद्देश्य के लिए विशेष रूप से डिजाइन प्रश्नों के साथ इस्तेमाल किया जा सकता है कि

वास्तव में एक बहुत अच्छा प्रोपextracts कहा जाता है: यहाँ है कि मैं सुझाव दिया है। निष्कर्ष आपको लेख निष्कर्ष (संक्षिप्त लेख पाठ) प्राप्त करने की अनुमति देते हैं। exintro नामक एक पैरामीटर है जिसका प्रयोग को शून्य सेक्शन (छवियों या इन्फोबॉक्स जैसी कोई अतिरिक्त संपत्ति) में टेक्स्ट पुनर्प्राप्त नहीं किया जा सकता है। आप भी इस तरह के पात्रों की एक निश्चित संख्या (exchars) द्वारा के रूप में या वाक्य की एक निश्चित संख्या से (exsentences)

यहाँ है एक नमूना क्वेरीhttp://en.wikipedia.org/w/api.php?action=query&prop=extracts&format=json&exintro=&titles=Stack%20Overflow और एपीआई अधिक विस्तृत रूप से अर्क प्राप्त कर सकते हैं इस क्वेरी के साथ अधिक प्रयोग करने के लिए sandboxhttp://en.wikipedia.org/wiki/Special:ApiSandbox#action=query&prop=extracts&format=json&exintro=&titles=Stack%20Overflow

कृपया ध्यान दें कि यदि आप पहले पैराग्राफ को चाहते हैं तो विशेष रूप से आपको पहले टैग प्राप्त करने की आवश्यकता है। हालांकि इस एपीआई कॉल में छवियों की तरह कोई अतिरिक्त संपत्ति नहीं है। यदि आप इस परिचय सारांश से संतुष्ट हैं तो आप php's strip_tag जैसे फ़ंक्शन को चलाकर टेक्स्ट पुनर्प्राप्त कर सकते हैं जो HTML टैग को हटा देता है।

1

आप सीधे विकिपीडिया डेटाबेस डाउनलोड कर सकते हैं और Wiki Parser के साथ सभी पृष्ठों को XML में पार्स कर सकते हैं, जो एक स्टैंडअलोन एप्लिकेशन है। पहला अनुच्छेद परिणामी एक्सएमएल में एक अलग नोड है।

वैकल्पिक रूप से, आप अपने सादे-पाठ आउटपुट से पहला अनुच्छेद निकाल सकते हैं।

2

आप https://en.wikipedia.org/w/api.php?format=json&action=query&prop=extracts&exintro=&explaintext=&titles=java जैसे पृष्ठों से पूछताछ करके विकिपीडिया में आलेख की शुरुआत प्राप्त कर सकते हैं। आपको बस जेसन फ़ाइल को पार्स करने की ज़रूरत है और नतीजा सादा पाठ है जिसे लिंक और संदर्भों को हटाने सहित साफ किया गया है।

12

मैं इसे इस तरह से कार्य करें:

https://en.wikipedia.org/w/api.php?action=opensearch&search=bee&limit=1&format=json

प्रतिक्रिया आपको मिल डेटा के साथ एक सरणी है, पार्स करने के लिए आसान:

[ 
    "bee", 
    [ 
    "Bee" 
    ], 
    [ 
    "Bees are flying insects closely related to wasps and ants, known for their role in pollination and, in the case of the best-known bee species, the European honey bee, for producing honey and beeswax." 
    ], 
    [ 
    "https://en.wikipedia.org/wiki/Bee" 
    ] 
] 

प्राप्त करने के लिए सिर्फ पहले पैराग्राफ limit=1 क्या है आप की जरूरत है।

2
<script>  
    function dowiki(place) { 
     var URL = 'https://en.wikipedia.org/w/api.php?format=json&action=query&prop=extracts&exintro=&explaintext='; 

     URL += "&titles=" + place; 
     URL += "&rvprop=content"; 
     URL += "&callback=?"; 
     $.getJSON(URL, function (data) { 
      var obj = data.query.pages; 
      var ob = Object.keys(obj)[0]; 
      console.log(obj[ob]["extract"]); 
      try{ 
       document.getElementById('Label11').textContent = obj[ob]["extract"]; 
      } 
      catch (err) { 
       document.getElementById('Label11').textContent = err.message; 
      } 

     }); 
    } 
</script> 
+0

अपने उत्तर में कुछ पाठ विवरण जोड़ने पर विचार करें :) (यानी दूसरों की तुलना में यह क्या लाता है) –

1

आप ऐसा करने के लिए JQuery का उपयोग कर सकते हैं। पहले उचित पैरामीटर के साथ यूआरएल बनाएँ। मानकों का क्या अर्थ है यह समझने के लिए यह link देखें। फिर लेख पुनर्प्राप्त करने के लिए $.ajax() विधि का उपयोग करें। ध्यान दें कि विकिपीडिया क्रॉस मूल अनुरोध की अनुमति नहीं देता है। यही कारण है कि हम अनुरोध में dataType : jsonp का उपयोग कर रहे हैं।

var wikiURL = "https://en.wikipedia.org/w/api.php"; 
wikiURL += '?' + $.param({ 
    'action' : 'opensearch', 
    'search' : 'your_search_term', 
    'prop' : 'revisions', 
    'rvprop' : 'content', 
    'format' : 'json', 
    'limit' : 10 
}); 

$.ajax({ 
    url: wikiURL, 
    dataType: 'jsonp', 
    success: function(data) { 
     console.log(data); 
    } 
});