Utilisateur:Pabix/wikiwix
Ce script va chercher la liste des articles dans lesquels un certain mot apparaît à l'aide de Wikiwix, puis exécute le script replace.py de pywikipediabot avec les arguments qui sont demandés pendant l'exécution.
Code
modifier#!/bin/bash echo -e -n "\033[34mQuelle chaîne chercher dans les articles ?\033[0m " read i ###### Requête echo -e "\033[34mRequête sur Wikiwix... \033[0m" nbq=100 # Nombre de résultats maximal donnés par Wikiwix sur une page de résultats qb=1 # Offset de la première requête, ne pas modifier while true # Boucle... do echo "$nbq résultats à partir du numéro $qb" wget "http://www.wikiwix.com/?action=${i}&lang=fr&nbq=${nbq}&qb=${qb}" -O SEARCH${qb} &> /dev/null # Prendre les (nbq) résultats suivants grep src..img.flech.suiv.png. SEARCH${qb} &> /dev/null || break # Si on trouve la flèche à droite, cela veut dire qu'il # reste des résultats, sinon sortir de la boucle qb=$(echo $(($qb + $nbq)) ) # Mettre l'offset à jour done cat SEARCH* > SEARCH # Concaténation de tous les résultats de recherche rm SEARCH[0-9]* # Suppression des fichiers temporaires ###### Filtrage grep class..titre. SEARCH | sed 's/^.*<a target=._blank. href=.[^"]*.>\(.*\) ( [0-9]*% ).*$/[[\1]]/g' | sort | uniq > SEARCH2 2> /dev/null mv SEARCH2 SEARCH ###### Affichage de la liste des articles à modifier echo -e "\033[34mVoici la liste a priori des articles à modifier :\033[0m" awk '{printf "%s ; ", $0}' SEARCH ; echo "" ###### Demande des expressions régulières à passer à la ligne de commande de replace.py echo -e -n "\033[34mRentrez la liste d'expressions régulières à modifier, par paires, entre guillemets : \033[0m" read i ###### Affichage de la ligne de commande exécutée et lancement a=$(echo python replace.py -file:SEARCH -regex -namespace:0 "$i") echo -e -n "\033[34mLancement de la commande :\033[0m " echo $a eval "$a"
Exemple d'utilisation
modifier
benoit@mortgat:~/Personnel/WP/pywikipedia$ . wikiwix
Quelle chaîne chercher dans les articles ? groseiller
Requête sur Wikiwix...
100 résultats à partir du numéro 1
100 résultats à partir du numéro 101
cat: SEARCH: le fichier à l'entrée est le même qu'à la sortie.
Voici la liste a priori des articles à modifier :
[[Abraxas grossulariata]] ; [[Haie]] ; [[Rochers de Freÿr]] ;
Rentrez la liste d'expressions régulières à modifier, par paires, entre guillemets : " groseiller " " groseillier "
Lancement de la commande : python replace.py -file:SEARCH -regex -namespace:0 " groseiller " " groseillier "
Checked for running processes. 1 processes currently running, including the current process.
Getting 3 pages from wikipedia:fr...