Je voudrais convertir un contenu wikipedia extrait avec API en texte brut.Page Wikimedia en texte en Python
Un conseil?
Je voudrais convertir un contenu wikipedia extrait avec API en texte brut.Page Wikimedia en texte en Python
Un conseil?
Il est censé y avoir quelques python mediawiki markup parsers/renderers, et vous pouvez pratiquement convertir du HTML en texte clair du style dont vous avez besoin. Je ne sais pas si cela fonctionnerait bien, cependant.
Je l'ai fait il y a quelques jours pour cloner un site Wikimedia
import re
from mediawikitools import *
import os
from sys import argv
def list_all_pages(site):
query_results = api.APIRequest(site, {'action':'query', 'list':'allpages', 'aplimit':'500'}).query()
results = query_results['query']['allpages']
return results
def clone(site):
if not os.path.exists(site.siteinfo['sitename'][:20]):
print 'Make Dir', site.siteinfo['sitename'][:20]
os.makedirs(site.siteinfo['sitename'][:20])
index = open(site.siteinfo['sitename'][:20] + '/' + 'Index','w')
pages = list_all_pages(site)
for test_page in pages:
if test_page['title'].rfind('/') != -1 and not os.path.exists(site.siteinfo['sitename'][:20] + '/' + test_page['title'][:test_page['title'].rfind('/')+1]):
#print test_page['title'][:test_page['title'].rfind('/')+1]
os.makedirs(site.siteinfo['sitename'][:20] + '/' + test_page['title'][:test_page['title'].rfind('/')+1])
page_file = open(site.siteinfo['sitename'][:20] + '/' + test_page['title']+'.wiki', 'w')
try:
index.write(site.siteinfo['sitename'][:20] + '/' + test_page['title']+'.wiki')
wiki_file = page.Page(site, test_page['title'])
print site.siteinfo['sitename'][:20] + '/' + test_page['title']+'.wiki'
page_file.write(wiki_file.getWikiText())
except KeyError, e:
print e
except UnicodeEncodeError, e:
print e
if __name__ == '__main__':
site = wiki.Wiki("http://localhost/wiki/api.php")
site.setUserAgent('Mozilla/6.0 (Windows NT 6.2; WOW64; rv:16.0.1) Gecko/20121011 Firefox/16.0.1')
print site.siteinfo['sitename']
clone(site)
#site.login(username, password, force=true) if you need a username and password to acess it
je l'ai écrit au sujet de ce problème sur mon blog une fois: [l'abomination des modèles mediawiki] (http://hewgill.com/journal/ entrées/343-l'abomination-de-mediawiki-modèles). Résumé: Je n'ai trouvé aucune grammaire et aucun code pour analyser les templates Mediawiki * sauf * pour une installation complète de Mediawiki. –