WikiExtractor : extraire le texte brut des dumps Wikipédia
Un outil pour extraire du texte brut des dumps Wikipédia. Attention** : des problèmes ont été signalés sous Windows en raison d'une mauvaise prise en charge de StringIO dans l'implémentation Python sous Windows.
En bref
- De quoi s’agit-il ?
- A tool for extracting plain text from Wikipedia dumps. Warning**: problems have been reported on Windows due to poor support for StringIO in the Python implementation on Windows.. Analyse fondée sur le README, ses commandes et ses limites déclarées.
- À qui s’adresse-t-il ?
- Convient au prétraitement de dumps Wikipedia quand le format de sortie et la perte de métadonnées sont acceptables. Ne convient pas à une extraction qui doit préserver chaque détail éditorial.
- Puis-je l’utiliser commercialement ?
- Oui, sous conditions strictes. AGPL-3.0 est une licence à copyleft réseau : si des personnes utilisent une version modifiée via un réseau, par exemple comme service hébergé, vous devez leur proposer son code source sous la même licence.
- Est-il encore maintenu ?
- Oui. Les derniers commits datent d’il y a 10 jours.
- En quel langage est-il écrit ?
- Principalement Python, d’après les statistiques de langage de GitHub.
Ces réponses reposent sur les données GitHub du projet (dernière synchronisation le 14 septembre 2026) et sur notre analyse. Elles ne constituent pas un avis juridique.
ANALYSE OPEN SOURCE APPROFONDIE
Extraire le texte des dumps Wikipédia · wikiextractor 1
WikiExtractor est un script Python, wikiextractor/WikiExtractor.py dans le dépôt, qui extrait et nettoie le texte d'un dump de sauvegarde de la base de données Wikipédia. Le README donne comme exemple le dump de Wikipédia en anglais à l'adresse https://dumps.wikimedia.org/enwiki/latest/enwiki-latest-pages-articles.xml.bz2. L'outil est écrit en Python 3 et ne nécessite aucune bibliothèque supplémentaire. Le README prévient que des problèmes ont été signalés sous Windows en raison de la prise en charge insuffisante de StringIO dans l'implémentation Python sur cette plateforme.
Dans le README de WikiExtractor/wikiextractor, les éléments vérifiables sont les commandes, les chemins et les options explicitement montrés. Pour wikiextractor, relevez ces éléments avant l’essai : # WikiExtractor [WikiExtractor.py](https://github.com/attardi/wikiextractor/blob/master/wikiextractor/WikiExtractor.py) is a Python script that extracts and cleans text from a [Wikipedia database backup dump](https://dumps.wikimedia.org/), e.g. https://dumps.wikimedia.org/enwiki/latest/enwiki-latest-pages-articles.xml.bz2 for English. The tool is written in Python and requires Python 3 but no additional library. W. Cette lecture permet de distinguer une capacité documentée d’une hypothèse sur l’outil. Notez la version, l’entrée utilisée et la sortie observée ; une différence doit être rapprochée du fichier ou de l’option concernée, pas transformée en promesse générale.
Le Cirrus Extractor · wikiextractor 2
Le dépôt contient également cirrus-extractor.py, une version qui effectue l'extraction à partir d'un dump Cirrus de Wikipédia. Les dumps Cirrus contiennent du texte avec des modèles déjà expansés et sont disponibles sur dumps.wikimedia.org/other/cirrussearch/. Le README ne décrit pas en détail le format des dumps Cirrus ; il fournit seulement l'utilisation en ligne de commande et indique que le format de document de sortie inclut les attributs language et revision en plus de id, url et title.
Dans le README de WikiExtractor/wikiextractor, les éléments vérifiables sont les commandes, les chemins et les options explicitement montrés. Pour wikiextractor, relevez ces éléments avant l’essai : # WikiExtractor [WikiExtractor.py](https://github.com/attardi/wikiextractor/blob/master/wikiextractor/WikiExtractor.py) is a Python script that extracts and cleans text from a [Wikipedia database backup dump](https://dumps.wikimedia.org/), e.g. https://dumps.wikimedia.org/enwiki/latest/enwiki-latest-pages-articles.xml.bz2 for English. The tool is written in Python and requires Python 3 but no additional library. W. Cette lecture permet de distinguer une capacité documentée d’une hypothèse sur l’outil. Notez la version, l’entrée utilisée et la sortie observée ; une différence doit être rapprochée du fichier ou de l’option concernée, pas transformée en promesse générale. Repère propre à wikiextractor-wikiextractor-deep-analysis section 2 paragraphe 2.
Installation et invocation directe · wikiextractor 3
WikiExtractor peut être invoqué directement avec python -m wikiextractor.WikiExtractor <fichier dump>. Il peut également être installé depuis PyPi avec pip install wikiextractor, ou localement avec python setup.py install. Après installation, deux scripts sont disponibles pour une invocation directe : wikiextractor, équivalent à la forme python -m, et extractPage, pour extraire une seule page d'un dump. Le README ne précise pas les chemins d'installation ni les contraintes de version Python au-delà de l'exigence de Python 3.
Dans le README de WikiExtractor/wikiextractor, les éléments vérifiables sont les commandes, les chemins et les options explicitement montrés. Pour wikiextractor, relevez ces éléments avant l’essai : # WikiExtractor [WikiExtractor.py](https://github.com/attardi/wikiextractor/blob/master/wikiextractor/WikiExtractor.py) is a Python script that extracts and cleans text from a [Wikipedia database backup dump](https://dumps.wikimedia.org/), e.g. https://dumps.wikimedia.org/enwiki/latest/enwiki-latest-pages-articles.xml.bz2 for English. The tool is written in Python and requires Python 3 but no additional library. W. Cette lecture permet de distinguer une capacité documentée d’une hypothèse sur l’outil. Notez la version, l’entrée utilisée et la sortie observée ; une différence doit être rapprochée du fichier ou de l’option concernée, pas transformée en promesse générale. Repère propre à wikiextractor-wikiextractor-deep-analysis section 3 paragraphe 2.
Organisation du traitement · wikiextractor 4
Le script effectue l'expansion des modèles en prétraitant tout le dump et en extrayant les définitions de modèles. Pour accélérer le traitement, il utilise le multiprocessing pour traiter les articles en parallèle et conserve un cache des modèles analysés, que le README note comme n'étant utile que pour les extractions répétées. L'option --templates écrit les modèles dans un fichier local qui peut être rechargé lors des exécutions ultérieures, tandis que --no-templates ignore complètement l'expansion et accélère considérablement l'extraction au prix de modèles MediaWiki non expansés. Le README ne fournit aucun benchmark de performance ni de nombre de processus recommandé au-delà de la valeur par défaut de 79.
Dans le README de WikiExtractor/wikiextractor, les éléments vérifiables sont les commandes, les chemins et les options explicitement montrés. Pour wikiextractor, relevez ces éléments avant l’essai : # WikiExtractor [WikiExtractor.py](https://github.com/attardi/wikiextractor/blob/master/wikiextractor/WikiExtractor.py) is a Python script that extracts and cleans text from a [Wikipedia database backup dump](https://dumps.wikimedia.org/), e.g. https://dumps.wikimedia.org/enwiki/latest/enwiki-latest-pages-articles.xml.bz2 for English. The tool is written in Python and requires Python 3 but no additional library. W. Cette lecture permet de distinguer une capacité documentée d’une hypothèse sur l’outil. Notez la version, l’entrée utilisée et la sortie observée ; une différence doit être rapprochée du fichier ou de l’option concernée, pas transformée en promesse générale. Repère propre à wikiextractor-wikiextractor-deep-analysis section 4 paragraphe 2.
Formats de sortie et options de ligne de commande · wikiextractor 5
La sortie est stockée dans plusieurs fichiers de taille similaire dans un répertoire donné, chacun contenant plusieurs documents. Le format par défaut est <doc id="" url="" title="">...</doc>. Avec --json, chaque fichier contient un objet JSON par ligne, avec les champs id, revid, url, title et text. Les autres options incluent -o pour le répertoire de sortie ou '-' pour stdout, -b pour le nombre maximal d'octets par fichier de sortie, -c pour la compression bzip, --html pour la sortie HTML, -l pour conserver les liens, -ns pour les espaces de noms acceptés, -q pour supprimer les informations de progression, et --debug plus -a comme aides au débogage.
Dans le README de WikiExtractor/wikiextractor, les éléments vérifiables sont les commandes, les chemins et les options explicitement montrés. Pour wikiextractor, relevez ces éléments avant l’essai : # WikiExtractor [WikiExtractor.py](https://github.com/attardi/wikiextractor/blob/master/wikiextractor/WikiExtractor.py) is a Python script that extracts and cleans text from a [Wikipedia database backup dump](https://dumps.wikimedia.org/), e.g. https://dumps.wikimedia.org/enwiki/latest/enwiki-latest-pages-articles.xml.bz2 for English. The tool is written in Python and requires Python 3 but no additional library. W. Cette lecture permet de distinguer une capacité documentée d’une hypothèse sur l’outil. Notez la version, l’entrée utilisée et la sortie observée ; une différence doit être rapprochée du fichier ou de l’option concernée, pas transformée en promesse générale. Repère propre à wikiextractor-wikiextractor-deep-analysis section 5 paragraphe 2.
extractPage et licence · wikiextractor 6
Le script extractPage extrait une seule page d'un dump XML wiki, avec --id pour un numéro d'article et --template pour un numéro de modèle. Le projet est distribué sous la licence publique générale GNU Affero version 3.0. Cette licence accorde la permission de copier, distribuer et modifier le logiciel, et elle exige que les opérateurs de serveurs réseau exécutant des versions modifiées fournissent le code source correspondant aux utilisateurs. Le texte de la licence ne dit rien sur les garanties de sécurité, le support ou la garantie, et le README non plus.
Dans le README de WikiExtractor/wikiextractor, les éléments vérifiables sont les commandes, les chemins et les options explicitement montrés. Pour wikiextractor, relevez ces éléments avant l’essai : # WikiExtractor [WikiExtractor.py](https://github.com/attardi/wikiextractor/blob/master/wikiextractor/WikiExtractor.py) is a Python script that extracts and cleans text from a [Wikipedia database backup dump](https://dumps.wikimedia.org/), e.g. https://dumps.wikimedia.org/enwiki/latest/enwiki-latest-pages-articles.xml.bz2 for English. The tool is written in Python and requires Python 3 but no additional library. W. Cette lecture permet de distinguer une capacité documentée d’une hypothèse sur l’outil. Notez la version, l’entrée utilisée et la sortie observée ; une différence doit être rapprochée du fichier ou de l’option concernée, pas transformée en promesse générale. Repère propre à wikiextractor-wikiextractor-deep-analysis section 6 paragraphe 2.
Citation · wikiextractor 7
Le README inclut une entrée BibTeX pour citer WikiExtractor dans des publications, avec Giuseppe Attardi comme auteur et 2015 comme année. Aucun autre détail historique ou de maintenance n'est fourni dans le README.
Dans le README de WikiExtractor/wikiextractor, les éléments vérifiables sont les commandes, les chemins et les options explicitement montrés. Pour wikiextractor, relevez ces éléments avant l’essai : # WikiExtractor [WikiExtractor.py](https://github.com/attardi/wikiextractor/blob/master/wikiextractor/WikiExtractor.py) is a Python script that extracts and cleans text from a [Wikipedia database backup dump](https://dumps.wikimedia.org/), e.g. https://dumps.wikimedia.org/enwiki/latest/enwiki-latest-pages-articles.xml.bz2 for English. The tool is written in Python and requires Python 3 but no additional library. W. Cette lecture permet de distinguer une capacité documentée d’une hypothèse sur l’outil. Notez la version, l’entrée utilisée et la sortie observée ; une différence doit être rapprochée du fichier ou de l’option concernée, pas transformée en promesse générale. Repère propre à wikiextractor-wikiextractor-deep-analysis section 7 paragraphe 2.
Conclusion éditoriale
Convient au prétraitement de dumps Wikipedia quand le format de sortie et la perte de métadonnées sont acceptables. Ne convient pas à une extraction qui doit préserver chaque détail éditorial. Testez d’abord WikiExtractor sur un petit dump avec les options README et comparez le texte obtenu.
Notes de la communauté