recherche
Maisondéveloppement back-endTutoriel PythonComment créer une CLI Wikipédia

Comment créer une CLI Wikipédia

Jan 25, 2025 am 12:13 AM

How to Create a Wikipedia CLI

Créez des outils de ligne de commande Wikipédia à l'aide de Python et de l'API Wikipédia

La création d'un outil d'interface de ligne de commande (CLI) Wikipédia a été un projet très enrichissant qui combinait la simplicité de Python avec la vaste base de connaissances de Wikipédia. Ce didacticiel vous guidera étape par étape dans la création d'un outil CLI qui obtient des informations de Wikipédia à l'aide de son API.


Prérequis

Avant de commencer, assurez-vous d'avoir les éléments suivants :

  • Python 3.7 ou supérieur installé sur votre système.
  • Connaissance de base de Python et expérience de l'utilisation des API.
  • Connexion Internet pour accéder à l'API Wikipédia.

Étape 1 : Comprendre l'API Wikipédia

Wikipedia fournit une API RESTful sur https://www.php.cn/link/27bf6226213cf288dfbf62ffc02bad4f. Cette API permet aux développeurs d'interroger Wikipédia pour obtenir du contenu, des métadonnées, etc. Les points de terminaison clés que nous utiliserons incluent :

  • action=query : obtenez du contenu général de Wikipédia.
  • list=search : Recherchez des articles par mot-clé.
  • prop=extracts : Récupérez les résumés des articles.

L'URL de base pour toutes les requêtes API est :

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

Étape 2 : Configurer l'environnement Python

Créez d’abord un environnement virtuel Python et installez les bibliothèques requises. Nous utiliserons requests pour effectuer des requêtes HTTP et argparse pour gérer les paramètres 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>

Étape 3 : Planifier les fonctions CLI

Notre outil CLI comprendra les fonctionnalités suivantes :

  1. Rechercher des articles Wikipédia  : permet aux utilisateurs de rechercher des articles par mots-clés.
  2. Obtenir le résumé de l'article : récupérez un bref résumé d'un article spécifique.
  3. Afficher l'aide CLI : affiche les instructions d'utilisation.

Étape 4 : implémenter l'outil CLI

Ce qui suit est le code Python de l'outil 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()

Étape 5 : Testez l'outil CLI

Enregistrez le script sous wikipedia_cli.py. Vous pouvez désormais exécuter l'outil depuis le terminal :

  1. Rechercher des articles :
<code>python wikipedia_cli.py search "Python programming"</code>
  1. Obtenir le résumé de l'article :
<code>python wikipedia_cli.py summary "Python (programming language)"</code>

Étape 6 : Améliorer les outils

Pour rendre l'outil plus puissant et plus convivial, pensez à ajouter les éléments suivants :

  1. Gestion des erreurs : fournissez des messages d'erreur détaillés pour les requêtes API ayant échoué.
  2. Formatage : utilisez des bibliothèques comme rich pour obtenir un résultat plus joli.
  3. Caching : implémentez la mise en cache pour éviter les appels d'API répétés pour la même requête.
  4. Fonctionnalités supplémentaires : ajoutez la prise en charge pour obtenir des articles, des catégories ou des images associés.

Conclusion

Vous avez réussi à créer un outil CLI Wikipédia en utilisant Python et son API ! Cet outil peut servir de bon point de départ pour des projets plus avancés, comme l'intégrer à d'autres applications ou créer une version GUI. Bon codage !

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Le but principal de Python: flexibilité et facilité d'utilisationLe but principal de Python: flexibilité et facilité d'utilisationApr 17, 2025 am 12:14 AM

La flexibilité de Python se reflète dans les systèmes de prise en charge et de type dynamique multi-paradigmes, tandis que la facilité d'utilisation provient d'une syntaxe simple et d'une bibliothèque standard riche. 1. Flexibilité: prend en charge la programmation orientée objet, fonctionnelle et procédurale, et les systèmes de type dynamique améliorent l'efficacité de développement. 2. Facilité d'utilisation: La grammaire est proche du langage naturel, la bibliothèque standard couvre un large éventail de fonctions et simplifie le processus de développement.

Python: la puissance de la programmation polyvalentePython: la puissance de la programmation polyvalenteApr 17, 2025 am 12:09 AM

Python est très favorisé pour sa simplicité et son pouvoir, adaptés à tous les besoins des débutants aux développeurs avancés. Sa polyvalence se reflète dans: 1) Facile à apprendre et à utiliser, syntaxe simple; 2) Bibliothèques et cadres riches, tels que Numpy, Pandas, etc.; 3) Support multiplateforme, qui peut être exécuté sur une variété de systèmes d'exploitation; 4) Convient aux tâches de script et d'automatisation pour améliorer l'efficacité du travail.

Apprendre le python en 2 heures par jour: un guide pratiqueApprendre le python en 2 heures par jour: un guide pratiqueApr 17, 2025 am 12:05 AM

Oui, apprenez Python en deux heures par jour. 1. Élaborer un plan d'étude raisonnable, 2. Sélectionnez les bonnes ressources d'apprentissage, 3. Consolider les connaissances apprises par la pratique. Ces étapes peuvent vous aider à maîtriser Python en peu de temps.

Python vs C: avant et inconvénients pour les développeursPython vs C: avant et inconvénients pour les développeursApr 17, 2025 am 12:04 AM

Python convient au développement rapide et au traitement des données, tandis que C convient à des performances élevées et à un contrôle sous-jacent. 1) Python est facile à utiliser, avec syntaxe concise, et convient à la science des données et au développement Web. 2) C a des performances élevées et un contrôle précis, et est souvent utilisé dans les jeux et la programmation système.

Python: engagement du temps et rythme d'apprentissagePython: engagement du temps et rythme d'apprentissageApr 17, 2025 am 12:03 AM

Le temps nécessaire pour apprendre le python varie d'une personne à l'autre, principalement influencé par l'expérience de programmation précédente, la motivation d'apprentissage, les ressources et les méthodes d'apprentissage et le rythme d'apprentissage. Fixez des objectifs d'apprentissage réalistes et apprenez mieux à travers des projets pratiques.

Python: automatisation, script et gestion des tâchesPython: automatisation, script et gestion des tâchesApr 16, 2025 am 12:14 AM

Python excelle dans l'automatisation, les scripts et la gestion des tâches. 1) Automatisation: La sauvegarde du fichier est réalisée via des bibliothèques standard telles que le système d'exploitation et la fermeture. 2) Écriture de script: utilisez la bibliothèque PSUTIL pour surveiller les ressources système. 3) Gestion des tâches: utilisez la bibliothèque de planification pour planifier les tâches. La facilité d'utilisation de Python et la prise en charge de la bibliothèque riche en font l'outil préféré dans ces domaines.

Python et temps: tirer le meilleur parti de votre temps d'étudePython et temps: tirer le meilleur parti de votre temps d'étudeApr 14, 2025 am 12:02 AM

Pour maximiser l'efficacité de l'apprentissage de Python dans un temps limité, vous pouvez utiliser les modules DateTime, Time et Schedule de Python. 1. Le module DateTime est utilisé pour enregistrer et planifier le temps d'apprentissage. 2. Le module de temps aide à définir l'étude et le temps de repos. 3. Le module de planification organise automatiquement des tâches d'apprentissage hebdomadaires.

Python: jeux, GUIS, et plusPython: jeux, GUIS, et plusApr 13, 2025 am 12:14 AM

Python excelle dans les jeux et le développement de l'interface graphique. 1) Le développement de jeux utilise Pygame, fournissant des fonctions de dessin, audio et d'autres fonctions, qui conviennent à la création de jeux 2D. 2) Le développement de l'interface graphique peut choisir Tkinter ou Pyqt. Tkinter est simple et facile à utiliser, PYQT a des fonctions riches et convient au développement professionnel.

See all articles

Outils d'IA chauds

Undresser.AI Undress

Undresser.AI Undress

Application basée sur l'IA pour créer des photos de nu réalistes

AI Clothes Remover

AI Clothes Remover

Outil d'IA en ligne pour supprimer les vêtements des photos.

Undress AI Tool

Undress AI Tool

Images de déshabillage gratuites

Clothoff.io

Clothoff.io

Dissolvant de vêtements AI

AI Hentai Generator

AI Hentai Generator

Générez AI Hentai gratuitement.

Article chaud

R.E.P.O. Crystals d'énergie expliqués et ce qu'ils font (cristal jaune)
1 Il y a quelques moisBy尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. Meilleurs paramètres graphiques
1 Il y a quelques moisBy尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. Comment réparer l'audio si vous n'entendez personne
1 Il y a quelques moisBy尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. Commandes de chat et comment les utiliser
1 Il y a quelques moisBy尊渡假赌尊渡假赌尊渡假赌

Outils chauds

Envoyer Studio 13.0.1

Envoyer Studio 13.0.1

Puissant environnement de développement intégré PHP

Bloc-notes++7.3.1

Bloc-notes++7.3.1

Éditeur de code facile à utiliser et gratuit

Navigateur d'examen sécurisé

Navigateur d'examen sécurisé

Safe Exam Browser est un environnement de navigation sécurisé permettant de passer des examens en ligne en toute sécurité. Ce logiciel transforme n'importe quel ordinateur en poste de travail sécurisé. Il contrôle l'accès à n'importe quel utilitaire et empêche les étudiants d'utiliser des ressources non autorisées.

Version Mac de WebStorm

Version Mac de WebStorm

Outils de développement JavaScript utiles

mPDF

mPDF

mPDF est une bibliothèque PHP qui peut générer des fichiers PDF à partir de HTML encodé en UTF-8. L'auteur original, Ian Back, a écrit mPDF pour générer des fichiers PDF « à la volée » depuis son site Web et gérer différentes langues. Il est plus lent et produit des fichiers plus volumineux lors de l'utilisation de polices Unicode que les scripts originaux comme HTML2FPDF, mais prend en charge les styles CSS, etc. et présente de nombreuses améliorations. Prend en charge presque toutes les langues, y compris RTL (arabe et hébreu) ​​et CJK (chinois, japonais et coréen). Prend en charge les éléments imbriqués au niveau du bloc (tels que P, DIV),