cari

Cara Membuat CLI Wikipedia

Jan 25, 2025 am 12:13 AM

How to Create a Wikipedia CLI

Bina alat baris arahan Wikipedia menggunakan Python dan API Wikipedia

Membuat alat antara muka baris arahan Wikipedia (CLI) merupakan projek yang sangat memuaskan yang menggabungkan kesederhanaan Python dengan pangkalan pengetahuan Wikipedia yang luas. Tutorial ini akan membimbing anda langkah demi langkah membina alat CLI yang mendapat maklumat daripada Wikipedia menggunakan APInya.


Prasyarat

Sebelum anda bermula, pastikan anda mempunyai yang berikut:

  • Python 3.7 atau lebih tinggi dipasang pada sistem anda.
  • Pengetahuan asas Python dan pengalaman menggunakan API.
  • Sambungan Internet untuk mengakses API Wikipedia.

Langkah 1: Fahami API Wikipedia

Wikipedia menyediakan API RESTful di https://www.php.cn/link/27bf6226213cf288dfbf62ffc02bad4f. API ini membolehkan pembangun menanyakan Wikipedia untuk kandungan, metadata dan banyak lagi. Titik akhir utama yang akan kami gunakan termasuk:

  • action=query: Dapatkan kandungan umum daripada Wikipedia.
  • list=search: Cari artikel mengikut kata kunci.
  • prop=extracts: Dapatkan semula abstrak artikel.

URL asas untuk semua permintaan API ialah:

<code>https://www.php.cn/link/27bf6226213cf288dfbf62ffc02bad4f</code>

Langkah 2: Sediakan persekitaran Python

Mula-mula buat persekitaran maya Python dan pasang perpustakaan yang diperlukan. Kami akan menggunakan requests untuk membuat permintaan HTTP dan argparse untuk mengendalikan parameter CLI.

<code># 创建虚拟环境
python -m venv wikipedia-cli-env

# 激活环境
# 在Windows上:
wikipedia-cli-env\Scripts\activate
# 在Mac/Linux上:
source wikipedia-cli-env/bin/activate

# 安装依赖项
pip install requests argparse</code>

Langkah 3: Rancang fungsi CLI

Alat CLI kami akan menyertakan ciri berikut:

  1. Cari artikel Wikipedia : Membolehkan pengguna mencari artikel mengikut kata kunci.
  2. Dapatkan ringkasan artikel: Dapatkan ringkasan ringkas artikel tertentu.
  3. Lihat Bantuan CLI: Memaparkan arahan penggunaan.

Langkah 4: Laksanakan alat CLI

Berikut ialah kod Python untuk alat CLI:

import argparse
import requests

# 定义维基百科API的基本URL
WIKIPEDIA_API_URL = "https://www.php.cn/link/27bf6226213cf288dfbf62ffc02bad4f"

def search_articles(query):
    """搜索与查询匹配的维基百科文章。"""
    params = {
        'action': 'query',
        'list': 'search',
        'srsearch': query,
        'format': 'json',
    }
    response = requests.get(WIKIPEDIA_API_URL, params=params)
    response.raise_for_status()  # 对错误的响应引发错误
    data = response.json()

    if 'query' in data:
        return data['query']['search']
    else:
        return []

def get_article_summary(title):
    """获取维基百科文章的摘要。"""
    params = {
        'action': 'query',
        'prop': 'extracts',
        'exintro': True,
        'titles': title,
        'format': 'json',
    }
    response = requests.get(WIKIPEDIA_API_URL, params=params)
    response.raise_for_status()
    data = response.json()

    pages = data.get('query', {}).get('pages', {})
    for page_id, page in pages.items():
        if 'extract' in page:
            return page['extract']
    return "No summary available."

def main():
    parser = argparse.ArgumentParser(description="一个与维基百科交互的CLI工具。")
    subparsers = parser.add_subparsers(dest="command")

    # 子命令:search
    search_parser = subparsers.add_parser("search", help="在维基百科上搜索文章。")
    search_parser.add_argument("query", help="搜索查询。")

    # 子命令:summary
    summary_parser = subparsers.add_parser("summary", help="获取特定维基百科文章的摘要。")
    summary_parser.add_argument("title", help="维基百科文章的标题。")

    args = parser.parse_args()

    if args.command == "search":
        results = search_articles(args.query)
        if results:
            print("搜索结果:")
            for result in results:
                print(f"- {result['title']}: {result['snippet']}")
        else:
            print("未找到结果。")

    elif args.command == "summary":
        summary = get_article_summary(args.title)
        print(summary)

    else:
        parser.print_help()

if __name__ == "__main__":
    main()

Langkah 5: Uji alat CLI

Simpan skrip sebagai wikipedia_cli.py. Anda kini boleh menjalankan alat dari terminal:

  1. Cari artikel:
<code>python wikipedia_cli.py search "Python programming"</code>
  1. Dapatkan ringkasan artikel:
<code>python wikipedia_cli.py summary "Python (programming language)"</code>

Langkah 6: Tingkatkan Alat

Untuk menjadikan alat lebih berkuasa dan mesra pengguna, sila pertimbangkan untuk menambah yang berikut:

  1. Rawatan ralat : Menyediakan mesej ralat terperinci untuk permintaan API yang gagal.
  2. Format
  3. : Gunakan perpustakaan seperti untuk mendapatkan output yang lebih indah. rich Caches
  4. : Mencapai cache untuk mengelakkan berulang panggilan API yang berulang kali ditanyakan.
  5. Fungsi tambahan : Tambah sokongan untuk mendapatkan artikel, kategori atau imej yang berkaitan.
  6. Kesimpulan
  7. Anda telah berjaya menggunakan Python dan APInya untuk membina alat Wikipedia CLI! Alat ini boleh digunakan sebagai titik permulaan yang baik untuk projek yang lebih maju, seperti mengintegrasikannya ke dalam aplikasi lain atau membuat versi GUI. Saya doakan anda gembira!

Atas ialah kandungan terperinci Cara Membuat CLI Wikipedia. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn
Pendekatan Hibrid Python: Kompilasi dan Tafsiran DigabungkanPendekatan Hibrid Python: Kompilasi dan Tafsiran DigabungkanMay 08, 2025 am 12:16 AM

Pythonusesahybridapproach, combiningcompilationtobytecodeandinterpretation.1) codeiscompiledtopplatform-independentbytecode.2) byteCodeisinterpretedbythepythonvirtualmachine, enhancingficiencyAndortability.

Ketahui perbezaan antara gelung 'untuk' dan 'sementara' PythonKetahui perbezaan antara gelung 'untuk' dan 'sementara' PythonMay 08, 2025 am 12:11 AM

TheKeydifferencesbetweenpython's "for" and "while" loopsare: 1) "untuk" loopsareidealforiteratingoversequencesorknowniterations, while2) "manakala" loopsarebetterforcontinuinguntilaconditionismetwithoutpredefinediterations.un

Senarai concatenate python dengan penduaSenarai concatenate python dengan penduaMay 08, 2025 am 12:09 AM

Di Python, anda boleh menyambungkan senarai dan menguruskan elemen pendua melalui pelbagai kaedah: 1) Gunakan pengendali atau melanjutkan () untuk mengekalkan semua elemen pendua; 2) Tukar ke set dan kemudian kembali ke senarai untuk mengalih keluar semua elemen pendua, tetapi pesanan asal akan hilang; 3) Gunakan gelung atau senarai pemantauan untuk menggabungkan set untuk menghapuskan elemen pendua dan mengekalkan urutan asal.

Python List Concatenation Prestasi: Perbandingan KelajuanPython List Concatenation Prestasi: Perbandingan KelajuanMay 08, 2025 am 12:09 AM

ThfastestmethodforlistconcatenationInpythondondedonListsize: 1) forsmalllists, the operatoriseSefficient.2) forlargerlists, list.extend () orlistComprehensionisfaster, withExtend () ausmorememory-efficientyModifingListsin-tempat.

Bagaimana anda memasukkan elemen ke dalam senarai python?Bagaimana anda memasukkan elemen ke dalam senarai python?May 08, 2025 am 12:07 AM

ToinSertelementsIntoapythonlist, useAppend () toaddtotheend, memasukkan () foraspecificposition, andExtend () formultipleelements.1) useAppend () foraddingsingleitemstotheend.2) useInsert () toaddataSpecificIndex, evenItForForForForForForShoStoRd

Adakah Python menyenaraikan susunan dinamik atau senarai yang dipautkan di bawah tudung?Adakah Python menyenaraikan susunan dinamik atau senarai yang dipautkan di bawah tudung?May 07, 2025 am 12:16 AM

Pythonlistsareimplementedasdynamicarrays, notlinkedlists.1) thearestoredincontiguousmemoryblocks, yangMayrequireReAllocationWhenAppendingItems, ImpactingPormance.2) LinkedListSwouldOfferefficientInsertions/DeletionsButsCoweCcess

Bagaimana anda membuang elemen dari senarai python?Bagaimana anda membuang elemen dari senarai python?May 07, 2025 am 12:15 AM

PythonoffersfourmainmethodstoremoveelementsFromalist: 1) Keluarkan (nilai) RemoveStHefirStoccurrenceFavalue, 2) Pop (index) RemoveRandReturnSanelementAtaspeciedIndex, 3)

Apa yang perlu anda periksa jika anda mendapat ralat 'kebenaran ditolak' apabila cuba menjalankan skrip?Apa yang perlu anda periksa jika anda mendapat ralat 'kebenaran ditolak' apabila cuba menjalankan skrip?May 07, 2025 am 12:12 AM

Ralat toresolvea "kebenaran" yang mana -mana, berikut: 1) checkandadjustthescript'spermissionsingchmod xmyscript.shtomakeitexecutable.2) EnsurethescriptislocatedInadirectoryHeryouhaveVerPiSs, suchasyoursory, suchasyourshy, suchasyourperhysh, suchasyourshy.

See all articles

Alat AI Hot

Undresser.AI Undress

Undresser.AI Undress

Apl berkuasa AI untuk mencipta foto bogel yang realistik

AI Clothes Remover

AI Clothes Remover

Alat AI dalam talian untuk mengeluarkan pakaian daripada foto.

Undress AI Tool

Undress AI Tool

Gambar buka pakaian secara percuma

Clothoff.io

Clothoff.io

Penyingkiran pakaian AI

Video Face Swap

Video Face Swap

Tukar muka dalam mana-mana video dengan mudah menggunakan alat tukar muka AI percuma kami!

Alat panas

SublimeText3 versi Cina

SublimeText3 versi Cina

Versi Cina, sangat mudah digunakan

Hantar Studio 13.0.1

Hantar Studio 13.0.1

Persekitaran pembangunan bersepadu PHP yang berkuasa

PhpStorm versi Mac

PhpStorm versi Mac

Alat pembangunan bersepadu PHP profesional terkini (2018.2.1).

EditPlus versi Cina retak

EditPlus versi Cina retak

Saiz kecil, penyerlahan sintaks, tidak menyokong fungsi gesaan kod

Notepad++7.3.1

Notepad++7.3.1

Editor kod yang mudah digunakan dan percuma