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.
Sebelum anda bermula, pastikan anda mempunyai yang berikut:
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>
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>
Alat CLI kami akan menyertakan ciri berikut:
Berikut ialah kod Python untuk alat CLI:
<code class="language-python">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()</code>
Simpan skrip sebagai wikipedia_cli.py
. Anda kini boleh menjalankan alat dari terminal:
<code>python wikipedia_cli.py search "Python programming"</code>
<code>python wikipedia_cli.py summary "Python (programming language)"</code>
Untuk menjadikan alat lebih berkuasa dan mesra pengguna, sila pertimbangkan untuk menambah yang berikut:
rich
Caches Atas ialah kandungan terperinci Cara Membuat CLI Wikipedia. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!