มี wikipedia API ที่สะอาดเพียงเพื่อดึงข้อมูลสรุปเนื้อหาหรือไม่


150

ฉันต้องการเพียงแค่ดึงย่อหน้าแรกของหน้า Wikipedia เนื้อหาจะต้องมีรูปแบบ HTML พร้อมที่จะปรากฏบนเว็บไซต์ของฉัน (ดังนั้นไม่มี BBCODE หรือรหัสพิเศษ WIKIPEDIA!)


2
Wikipedia ไม่ได้ใช้รหัส BB แต่ใช้รหัสมาร์กอัปของวิกิ
svick

มันใช้ไม่ได้กับทุกบทความของวิกิพีเดีย ro.wikipedia.org/w/…
dumitru

คำตอบ:


205

มีวิธีรับ "ส่วนแนะนำ" ทั้งหมดโดยไม่มีการแยกวิเคราะห์ HTML! เช่นเดียวกับคำตอบของ AnthonyS พร้อมexplaintextพารามิเตอร์เพิ่มเติมคุณสามารถรับข้อความส่วนบทนำด้วยข้อความธรรมดา

สอบถาม

รับอินโทร Stack Overflow ในข้อความล้วน:

https://en.wikipedia.org/w/api.php?format=json&action=query&prop=extracts&exintro&explaintext&redirects=1&titles=Stack%20Overflow

การตอบสนอง JSON

(คำเตือนถูกปล้น)

{
    "query": {
        "pages": {
            "21721040": {
                "pageid": 21721040,
                "ns": 0,
                "title": "Stack Overflow",
                "extract": "Stack Overflow is a privately held website, the flagship site of the Stack Exchange Network, created in 2008 by Jeff Atwood and Joel Spolsky, as a more open alternative to earlier Q&A sites such as Experts Exchange. The name for the website was chosen by voting in April 2008 by readers of Coding Horror, Atwood's popular programming blog.\nIt features questions and answers on a wide range of topics in computer programming. The website serves as a platform for users to ask and answer questions, and, through membership and active participation, to vote questions and answers up or down and edit questions and answers in a fashion similar to a wiki or Digg. Users of Stack Overflow can earn reputation points and \"badges\"; for example, a person is awarded 10 reputation points for receiving an \"up\" vote on an answer given to a question, and can receive badges for their valued contributions, which represents a kind of gamification of the traditional Q&A site or forum. All user-generated content is licensed under a Creative Commons Attribute-ShareAlike license. Questions are closed in order to allow low quality questions to improve. Jeff Atwood stated in 2010 that duplicate questions are not seen as a problem but rather they constitute an advantage if such additional questions drive extra traffic to the site by multiplying relevant keyword hits in search engines.\nAs of April 2014, Stack Overflow has over 2,700,000 registered users and more than 7,100,000 questions. Based on the type of tags assigned to questions, the top eight most discussed topics on the site are: Java, JavaScript, C#, PHP, Android, jQuery, Python and HTML."
            }
        }
    }
}

เอกสารประกอบ: API: query / prop = แยก


แก้ไข: เพิ่ม&redirects=1ตามที่แนะนำในความคิดเห็น


28
ขอแนะนำให้ใช้& เปลี่ยนเส้นทาง = 1ซึ่งจะเปลี่ยนเส้นทางไปยังเนื้อหาที่มีความหมายเหมือนกันโดยอัตโนมัติ
joecks

6
ฉันจะรับข้อมูลจากการตอบสนอง JSON นี้ได้อย่างไรหากฉันไม่ทราบหมายเลขหน้า ฉันไม่สามารถเข้าถึงอาร์เรย์ JSON ที่มี "แยก"
Laurynas G

@LaurynasG คุณสามารถโยนวัตถุลงในอาร์เรย์แล้วคว้ามันได้เช่น: $ extract = current ((array) $ json_query-> query-> pages) -> แยกออก
MarcGuay

@LaurynasG, @MarcGuay นอกจากนี้คุณยังสามารถเพิ่ม ` indexpageidsเป็นพารามิเตอร์ใน URL เพื่อรับรายการ pageids เพื่อการวนซ้ำที่ง่ายขึ้น
Rami

ฉันได้เอาต์พุต json จากการเรียกใช้ wiki และจากนั้น cast json ไปยังอาร์เรย์ $ data = json_decode ($ json, จริง) จากนั้นผมก็พยายามที่จะได้รับ 'สารสกัดจาก' $extract = current((array)$data->query->pages)->extract;ใช้ แต่ "ประกาศ: พยายามที่จะรับทรัพย์สินที่ไม่ใช่วัตถุ" ยังคงมา
shikhar bansal

79

จริงๆแล้วมีเสาดีมากเรียกว่าสารสกัดที่สามารถใช้กับแบบสอบถามที่ออกแบบมาโดยเฉพาะสำหรับวัตถุประสงค์นี้ สารสกัดช่วยให้คุณได้รับสารสกัดจากบทความ (ข้อความบทความที่ถูกตัดทอน) มีพารามิเตอร์ที่เรียกว่าexintroที่สามารถใช้เพื่อดึงข้อความในส่วนศูนย์ (ไม่มีสินทรัพย์เพิ่มเติมเช่นภาพหรือกล่องข้อมูล) นอกจากนี้คุณยังสามารถดึงข้อมูลสารสกัดด้วยความละเอียดปลีกย่อยเช่นจำนวนอักขระ ( exchangears ) หรือจำนวนประโยค ( exsentences )

ต่อไปนี้เป็นตัวอย่างแบบสอบถาม http://en.wikipedia.org/w/api.php?action=query&prop=extracts&format=json&exintro=&titles=Stack%20Overflow และAPI Sandbox API http://en.wikipedia.org/wiki/ พิเศษ: ApiSandbox # action = query & prop = แยก & format = json & exintro = & title = สแต็ค% 20Overflowเพื่อทดลองเพิ่มเติมกับแบบสอบถามนี้

โปรดทราบว่าหากคุณต้องการย่อหน้าที่หนึ่งโดยเฉพาะคุณยังต้องทำการแยกวิเคราะห์เพิ่มเติมตามที่แนะนำในคำตอบที่เลือก ความแตกต่างที่นี่คือการตอบสนองที่ส่งกลับโดยแบบสอบถามนี้จะสั้นกว่าแบบสอบถาม api อื่น ๆ ที่แนะนำเพราะคุณไม่มีเนื้อหาเพิ่มเติมเช่นรูปภาพในการตอบสนอง api เพื่อแยกวิเคราะห์


62

ตั้งแต่ปี 2560 Wikipedia ได้จัดทำREST APIด้วยการแคชที่ดีขึ้น ในเอกสารคุณสามารถค้นหา API ต่อไปนี้ซึ่งเหมาะกับกรณีการใช้งานของคุณ (เนื่องจากมีการใช้งานคุณลักษณะการแสดงตัวอย่างหน้าใหม่)

https://en.wikipedia.org/api/rest_v1/page/summary/Stack_Overflow ส่งคืนข้อมูลต่อไปนี้ซึ่งสามารถใช้เพื่อแสดงหน้าร้อนที่มีภาพขนาดเล็ก:

{
  "type": "standard",
  "title": "Stack Overflow",
  "displaytitle": "Stack Overflow",
  "extract": "Stack Overflow is a question and answer site for professional and enthusiast programmers. It is a privately held website, the flagship site of the Stack Exchange Network, created in 2008 by Jeff Atwood and Joel Spolsky. It features questions and answers on a wide range of topics in computer programming. It was created to be a more open alternative to earlier question and answer sites such as Experts-Exchange. The name for the website was chosen by voting in April 2008 by readers of Coding Horror, Atwood's popular programming blog.",
  "extract_html": "<p><b>Stack Overflow</b> is a question and answer site for professional and enthusiast programmers. It is a privately held website, the flagship site of the Stack Exchange Network, created in 2008 by Jeff Atwood and Joel Spolsky. It features questions and answers on a wide range of topics in computer programming. It was created to be a more open alternative to earlier question and answer sites such as Experts-Exchange. The name for the website was chosen by voting in April 2008 by readers of <i>Coding Horror</i>, Atwood's popular programming blog.</p>",
  "namespace": {
    "id": 0,
    "text": ""
  },
  "wikibase_item": "Q549037",
  "titles": {
    "canonical": "Stack_Overflow",
    "normalized": "Stack Overflow",
    "display": "Stack Overflow"
  },
  "pageid": 21721040,
  "thumbnail": {
    "source": "https://upload.wikimedia.org/wikipedia/en/thumb/f/fa/Stack_Overflow_homepage%2C_Feb_2017.png/320px-Stack_Overflow_homepage%2C_Feb_2017.png",
    "width": 320,
    "height": 149
  },
  "originalimage": {
    "source": "https://upload.wikimedia.org/wikipedia/en/f/fa/Stack_Overflow_homepage%2C_Feb_2017.png",
    "width": 462,
    "height": 215
  },
  "lang": "en",
  "dir": "ltr",
  "revision": "902900099",
  "tid": "1a9cdbc0-949b-11e9-bf92-7cc0de1b4f72",
  "timestamp": "2019-06-22T03:09:01Z",
  "description": "website hosting questions and answers on a wide range of topics in computer programming",
  "content_urls": {
    "desktop": {
      "page": "https://en.wikipedia.org/wiki/Stack_Overflow",
      "revisions": "https://en.wikipedia.org/wiki/Stack_Overflow?action=history",
      "edit": "https://en.wikipedia.org/wiki/Stack_Overflow?action=edit",
      "talk": "https://en.wikipedia.org/wiki/Talk:Stack_Overflow"
    },
    "mobile": {
      "page": "https://en.m.wikipedia.org/wiki/Stack_Overflow",
      "revisions": "https://en.m.wikipedia.org/wiki/Special:History/Stack_Overflow",
      "edit": "https://en.m.wikipedia.org/wiki/Stack_Overflow?action=edit",
      "talk": "https://en.m.wikipedia.org/wiki/Talk:Stack_Overflow"
    }
  },
  "api_urls": {
    "summary": "https://en.wikipedia.org/api/rest_v1/page/summary/Stack_Overflow",
    "metadata": "https://en.wikipedia.org/api/rest_v1/page/metadata/Stack_Overflow",
    "references": "https://en.wikipedia.org/api/rest_v1/page/references/Stack_Overflow",
    "media": "https://en.wikipedia.org/api/rest_v1/page/media/Stack_Overflow",
    "edit_html": "https://en.wikipedia.org/api/rest_v1/page/html/Stack_Overflow",
    "talk_page_html": "https://en.wikipedia.org/api/rest_v1/page/html/Talk:Stack_Overflow"
  }
}

ตามค่าเริ่มต้นจะติดตามการเปลี่ยนเส้นทาง (เพื่อให้ใช้/api/rest_v1/page/summary/StackOverflowงานได้) แต่สามารถปิดใช้งานได้?redirect=false

หากคุณต้องการเข้าถึง API จากโดเมนอื่นคุณสามารถตั้งค่าส่วนหัว CORS ด้วย&origin=(เช่น&origin=*)

อัปเดต 2019: API ดูเหมือนจะส่งคืนข้อมูลที่เป็นประโยชน์เพิ่มเติมเกี่ยวกับหน้านี้


1
นอกจากนี้ยังรวมถึง "ประเภท" ซึ่งยอดเยี่ยมหากคุณต้องการทราบว่าสิ่งที่คุณค้นหามี "ความไม่ชัดเจน" หรือไม่
Jeel Shah

1
ฉันได้รับข้อผิดพลาดของ CORS ในขณะที่พยายามเข้าถึงลิงก์นี้จากแอพพลิเคชั่นที่ใช้ Angular ของฉันทุกคนสามารถบอกวิธีแก้ปัญหานั้นได้
Praveen Ojha

2
เป็นไปได้หรือไม่ที่จะสอบถามด้วย wikidata ID ฉันมีข้อมูล json ที่ฉันแสดงความคิดเห็นซึ่งดูเหมือนว่า "other_tags" : "\"addr:country\"=>\"CW\",\"historic\"=>\"ruins\",\"name:nl\"=>\"Riffort\",\"wikidata\"=>\"Q4563360\",\"wikipedia\"=>\"nl:Riffort\""เราจะได้รับสารสกัดจาก QID ตอนนี้หรือไม่
Sourav Chatterjee

1
สามารถใช้เพื่อโหลดสรุปมากกว่าหนึ่งหน้าได้หรือไม่
cheesus

@SouravChatterjee อะไรที่ขอให้ API นี้สามารถใช้ในการค้นหาด้วยรหัสหน้า? ดูเหมือนจะไม่
Abhijit Sarkar

39

รหัสนี้ช่วยให้คุณสามารถดึงเนื้อหาของย่อหน้าแรกของหน้าในข้อความธรรมดา

ส่วนหนึ่งของคำตอบนี้มาจากที่นี่และทำให้ที่นี่ ดูเอกสารประกอบ MediaWiki APIสำหรับข้อมูลเพิ่มเติม

// action=parse: get parsed text
// page=Baseball: from the page Baseball
// format=json: in json format
// prop=text: send the text content of the article
// section=0: top content of the page

$url = 'http://en.wikipedia.org/w/api.php?format=json&action=parse&page=Baseball&prop=text&section=0';
$ch = curl_init($url);
curl_setopt ($ch, CURLOPT_RETURNTRANSFER, 1);
curl_setopt ($ch, CURLOPT_USERAGENT, "TestScript"); // required by wikipedia.org server; use YOUR user agent with YOUR contact information. (otherwise your IP might get blocked)
$c = curl_exec($ch);

$json = json_decode($c);

$content = $json->{'parse'}->{'text'}->{'*'}; // get the main text content of the query (it's parsed HTML)

// pattern for first match of a paragraph
$pattern = '#<p>(.*)</p>#Us'; // http://www.phpbuilder.com/board/showthread.php?t=10352690
if(preg_match($pattern, $content, $matches))
{
    // print $matches[0]; // content of the first paragraph (including wrapping <p> tag)
    print strip_tags($matches[1]); // Content of the first paragraph without the HTML tags.
}

แต่ถ้าคุณค้นหา "ปะการัง" ผลลัพธ์จะไม่เป็นที่ต้องการ มีวิธีอื่นอีกไหมเพื่อให้เฉพาะแท็ก p ที่มี smmary เท่านั้นที่จะหยิบขึ้นมาได้
Deepanshu Goyal

31

ใช่แล้ว ตัวอย่างเช่นหากคุณต้องการรับเนื้อหาของส่วนแรกของบทความStack Overflowให้ใช้แบบสอบถามดังนี้:

http://en.wikipedia.org/w/api.php?format=xml&action=query&prop=revisions&titles=Stack%20Overflow&rvprop=content&rvsection=0&rvparse

ชิ้นส่วนหมายถึงสิ่งนี้:

  • format=xml: ส่งคืนตัวจัดรูปแบบผลลัพธ์เป็น XML ตัวเลือกอื่น ๆ (เช่น JSON) สิ่งนี้จะไม่ส่งผลกระทบต่อรูปแบบของเนื้อหาของหน้าตัวเองเพียง แต่รูปแบบข้อมูลที่ล้อมรอบ

  • action=query&prop=revisions: รับข้อมูลเกี่ยวกับการแก้ไขหน้า เนื่องจากเราไม่ได้ระบุการแก้ไขใดจะใช้การปรับปรุงล่าสุด

  • titles=Stack%20Overflow: Stack Overflowได้รับข้อมูลเกี่ยวกับหน้า |มันเป็นไปได้ที่จะได้รับข้อความของหน้ามากขึ้นในหนึ่งไปถ้าคุณแยกชื่อของพวกเขาโดย

  • rvprop=content: ส่งคืนเนื้อหา (หรือข้อความ) ของการแก้ไข

  • rvsection=0: ส่งคืนเฉพาะเนื้อหาจากส่วน 0

  • rvparse: ส่งคืนเนื้อหาที่แยกวิเคราะห์เป็น HTML

โปรดทราบว่าสิ่งนี้จะส่งคืนส่วนแรกทั้งหมดรวมถึงสิ่งต่างๆเช่นความเกลียดชัง ("สำหรับการใช้งานอื่น ๆ ... "), กล่องข้อมูลหรือรูปภาพ

มีหลายไลบรารีสำหรับภาษาต่าง ๆ ที่ทำให้การทำงานกับ API ง่ายขึ้นมันอาจจะดีกว่าถ้าคุณใช้หนึ่งในนั้น


3
ฉันไม่ต้องการให้มีการแยกวิเคราะห์เนื้อหาโฆษณา HTML ฉันแค่ต้องการได้รับ "ข้อความธรรมดา" (ไม่ใช่รหัสวิกิพีเดีย)
ประกาย

1
API ไม่ได้เสนออะไรอย่างนั้น และฉันสามารถเข้าใจได้ว่าทำไม: เนื่องจากจากมุมมองของ API จึงไม่ชัดเจนว่า "ข้อความธรรมดา" นี้ควรมีอะไร ตัวอย่างเช่นควรแสดงตารางอย่างไรว่าจะรวม "[จำเป็นต้องอ้างอิง]" กล่องการนำทางหรือคำอธิบายรูปภาพ
svick

2
การเพิ่ม&redirects=trueที่ส่วนท้ายของลิงค์ช่วยให้คุณไปถึงบทความปลายทางหากมีอยู่
eric.mitchell

14

นี่คือรหัสที่ฉันใช้ในขณะนี้สำหรับเว็บไซต์ที่ฉันกำลังทำอยู่ซึ่งจำเป็นต้องได้รับย่อหน้า / สรุป / ตอนที่ 0 จากบทความ Wikipedia และมันทำเสร็จแล้วภายในเบราว์เซอร์ (จาวาสคริปต์ฝั่งไคลเอ็นต์) ต้องขอบคุณ magick ของ JSONP! -> http://jsfiddle.net/gautamadude/HMJJg/1/

โดยใช้ Wikipedia API เพื่อรับย่อหน้านำหน้า (เรียกว่าส่วนที่ 0) ในรูปแบบ HTML ดังนี้: http://en.wikipedia.org/w/api.php?format=json&action=parse&page=Stack_Overflow&prop=text§ion=0&callback=?

จากนั้นจะตัดแถบ HTML และข้อมูลที่ไม่ต้องการอื่น ๆ ให้สตริงของบทสรุปบทความที่ชัดเจนหากคุณต้องการปรับเปลี่ยนเล็กน้อยให้ได้แท็ก html "p" รอบย่อหน้านำหน้า แต่ตอนนี้มีเพียงบรรทัดใหม่ ตัวละครระหว่างพวกเขา

รหัส:

var url = "http://en.wikipedia.org/wiki/Stack_Overflow";
var title = url.split("/").slice(4).join("/");

//Get Leading paragraphs (section 0)
$.getJSON("http://en.wikipedia.org/w/api.php?format=json&action=parse&page=" + title + "&prop=text&section=0&callback=?", function (data) {
    for (text in data.parse.text) {
        var text = data.parse.text[text].split("<p>");
        var pText = "";

        for (p in text) {
            //Remove html comment
            text[p] = text[p].split("<!--");
            if (text[p].length > 1) {
                text[p][0] = text[p][0].split(/\r\n|\r|\n/);
                text[p][0] = text[p][0][0];
                text[p][0] += "</p> ";
            }
            text[p] = text[p][0];

            //Construct a string from paragraphs
            if (text[p].indexOf("</p>") == text[p].length - 5) {
                var htmlStrip = text[p].replace(/<(?:.|\n)*?>/gm, '') //Remove HTML
                var splitNewline = htmlStrip.split(/\r\n|\r|\n/); //Split on newlines
                for (newline in splitNewline) {
                    if (splitNewline[newline].substring(0, 11) != "Cite error:") {
                        pText += splitNewline[newline];
                        pText += "\n";
                    }
                }
            }
        }
        pText = pText.substring(0, pText.length - 2); //Remove extra newline
        pText = pText.replace(/\[\d+\]/g, ""); //Remove reference tags (e.x. [1], [4], etc)
        document.getElementById('textarea').value = pText
        document.getElementById('div_text').textContent = pText
    }
});

คุณเพิ่มสิ่งนี้ลงในสคริปต์ฝั่งไคลเอ็นต์หรือไม่ ถ้าใช่ XSS นั้นไม่ใช่เหรอ
craig

มีข้อบกพร่องมากมายลองลิงค์นี้กับสคริปต์ของคุณ: en.wikipedia.org/wiki/Modular_Advanced_Armed_Robotic_System
rohankvashisht

8

URL นี้จะส่งคืนข้อมูลสรุปในรูปแบบ xml

http://lookup.dbpedia.org/api/search.asmx/KeywordSearch?QueryString=Agra&MaxHits=1

ฉันได้สร้างฟังก์ชั่นเพื่อดึงคำอธิบายคำค้นหาจากวิกิพีเดีย

function getDescription($keyword){
    $url='http://lookup.dbpedia.org/api/search.asmx/KeywordSearch?QueryString='.urlencode($keyword).'&MaxHits=1';
    $xml=simplexml_load_file($url);
    return $xml->Result->Description;
}
echo getDescription('agra');

5

นอกจากนี้คุณยังจะได้รับเนื้อหาเช่น pagagraph แรกผ่านDBPediaซึ่งจะนำเนื้อหาวิกิพีเดียและสร้างข้อมูลโครงสร้างจากมัน (RDF) และทำให้มีนี้ผ่านทาง API DBPedia API เป็นหนึ่ง SPARQL (ตาม RDF) แต่มันออก JSON และมันเป็นเรื่องง่ายที่จะห่อ

เป็นตัวอย่างของไลบรารี JS ที่ง่ายสุดชื่อ WikipediaJS ที่สามารถแยกเนื้อหาที่มีโครงสร้างรวมถึงย่อหน้าแรกที่สรุป: http://okfnlabs.org/wikipediajs/

คุณสามารถอ่านเพิ่มเติมเกี่ยวกับมันในโพสต์บล็อกนี้: http://okfnlabs.org/blog/2012/09/10/wikipediajs-a-javascript-library-for-accessing-wikipedia-article-information.html

รหัสไลบรารี JS สามารถพบได้ที่นี่: https://github.com/okfn/wikipediajs/blob/master/wikipedia.js



1

หากคุณกำลังมองหาข้อความที่คุณสามารถแยกออก แต่ไม่ต้องการใช้ API ลองดูที่ en.wikipedia.org/w/index.php?title=Elephant&action=raw


"พร้อมที่จะแสดงบนเว็บไซต์ของฉัน (เช่นไม่มี BBCODE หรือรหัสพิเศษของ WIKIPEDIA!)" และนี่ก็ตรงข้ามเลย
bluewhile

1

วิธีการของฉันเป็นดังนี้ (ใน PHP):

$url = "whatever_you_need"

$html = file_get_contents('https://en.wikipedia.org/w/api.php?action=opensearch&search='.$url);
$utf8html = html_entity_decode(preg_replace("/U\+([0-9A-F]{4})/", "&#x\\1;", $html), ENT_NOQUOTES, 'UTF-8');

$utf8html อาจจำเป็นต้องทำความสะอาดเพิ่มเติม แต่โดยพื้นฐานแล้ว


จะดีกว่าถ้าถาม utf8 จาก API ด้วย & utf8 =
TomoMiha

1

ฉันลอง @Michael Rapadas และโซลูชันของ @ Krinkle แต่ในกรณีของฉันฉันมีปัญหาในการหาบทความบางอย่างขึ้นอยู่กับการใช้อักษรตัวพิมพ์ใหญ่ ชอบที่นี่:

https://en.wikipedia.org/w/api.php?format=json&action=query&prop=extracts&exintro=&exsentences=1&explaintext=&titles=Led%20zeppelin

หมายเหตุฉันตัดทอนการตอบกลับด้วย exsentences=1

เห็นได้ชัดว่า "การทำให้เป็นมาตรฐานของชื่อเรื่อง" ทำงานไม่ถูกต้อง:

การปรับมาตรฐานของชื่อเรื่องจะแปลงชื่อหน้าเป็นรูปแบบมาตรฐาน นี่หมายถึงการใช้อักษรตัวแรกแทนการขีดเส้นใต้ด้วยช่องว่างและเปลี่ยนเนมสเปซเป็นรูปแบบการแปลที่กำหนดไว้สำหรับวิกินั้น การปรับมาตรฐานชื่อเรื่องให้อัตโนมัติโดยไม่คำนึงว่าจะใช้โมดูลการสืบค้นใด อย่างไรก็ตามตัวแบ่งบรรทัดต่อท้ายใด ๆ ในชื่อหน้า (\ n) จะทำให้เกิดพฤติกรรมแปลก ๆ และควรถูกแยกออกก่อน

ฉันรู้ว่าฉันสามารถแยกแยะปัญหาเรื่องการใช้อักษรตัวพิมพ์ใหญ่ได้อย่างง่ายดาย แต่ก็ยังมีความไม่สะดวกที่ต้องส่งวัตถุไปยังอาร์เรย์

ดังนั้นเพราะฉันแค่ต้องการย่อหน้าแรกของการค้นหาที่เป็นที่รู้จักและกำหนด (ไม่มีความเสี่ยงในการดึงข้อมูลจากบทความอื่น) ฉันทำแบบนี้:

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

หมายเหตุในกรณีนี้ฉันได้ตัดทอนด้วย limit=1

ทางนี้:

  1. ฉันสามารถเข้าถึงข้อมูลการตอบกลับได้อย่างง่ายดาย
  2. การตอบสนองค่อนข้างเล็ก

แต่เราต้องระมัดระวังด้วยการใช้อักษรตัวใหญ่ของการค้นหาของเรา

ข้อมูลเพิ่มเติม: https://www.mediawiki.org/wiki/API:Opensearch

โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.