Outils personnels
User menu

Outil:WPDumpExtraction

De Dbpedia.fr.

Script pour extraire des dumps xml d'articles wikipédia des pages vérifiant une expression régulière.


Usage

$ ./WPDumpExtraction.pl [expression régulière] [offset] [nbMax de Pages] [fichier source]

Dans le cas où [nbMax de Pages] est 0, il n'y a pas de limite du nombre de pages extraites.

Exemple

$ ./WPDumpExtraction.pl "<title>Modèle:" 1 5 frwiki-20120917-pages-articles-complete.xml > sortie.xml

Génère un fichier sortie.xml au même format que les dumps de Wikipédia contenant les 2ème, 3ème, ... et 6ème pages du fichier frwiki-20120917-pages-articles-complete.xml dont le title commence par "Modèle:" (la valeur de offset commence à 0).


Code

#!/usr/bin/perl
#
# Program to get M wikipage from the Nth that containts the EXPR pattern

if($#ARGV < 1)
{
	print $#ARGV;
	print "Missing arguments !\n\tusage : extractionPage EXPR N M file\nIf M is 0, then all the pages matching the pattern are extracted";
print $#ARGV;
	exit 0;
}

$patern = $ARGV[0];
$offset = $ARGV[1];
$number = $ARGV[2];
$file = $ARGV[3];

#If $number=0, then there is no limit on the number of extracted pages
$isNbLimited=($number!=0);
#print "isNbLimited:$isNbLimited";


#open FILE, "<", $file or die $!; # Open the file
open(FILE, $file);	

$/ = "</siteinfo>";
$entete = <FILE>;
print $entete;

$/ = "</page>";

mainLoop: while(($page = <FILE>))
{
	if($isNbLimited && $number <= 0){
		last mainLoop;
	}
	else{
		if(($page =~ $patern) && $offset-- <= 0){
			print $page . "\n";
			$number--;
		}
	}
	
}

print "\n</mediawiki>";

close(FILE);			# Close the file

  • Dernière modification de cette page le 19 septembre 2012 à 14:51.
  • Cette page a été consultée 570 fois.