Связано с How to export text from all pages of a MediaWiki?, но я хочу, чтобы на выходе были отдельные текстовые файлы, названные с использованием названия страницы.Как экспортировать все страницы из mediawiki в отдельные файлы страниц?
SELECT page_title, page_touched, old_text
FROM revision,page,text
WHERE revision.rev_id=page.page_latest
AND text.old_id=revision.rev_text_id;
работает, чтобы сбрасывать его на стандартный вывод и все страницы за один раз.
Как разбить их и свалить в отдельные файлы?
решаемые
Первый дамп в один файл:
SELECT page_title, page_touched, old_text
FROM revision,page,text
WHERE revision.rev_id=page.page_latest AND text.old_id=revision.rev_text_id AND page_namespace!='6' AND page_namespace!='8' AND page_namespace!='12'
INTO OUTFILE '/tmp/wikipages.csv'
FIELDS TERMINATED BY '\n'
ESCAPED BY ''
LINES TERMINATED BY '\[email protected]@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@\n';
Затем разделить его в отдельный файл, используйте питона:
with open('wikipages.csv', 'rb') as f:
alltxt = f.read().split('\[email protected]@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@\n')
for row in alltxt:
one = row.split('\n')
name = one[0].replace('/','-')
try:
del one[0]
del one[0]
except:
continue
txt = '\n'.join(one)
of = open('/tmp/wikipages/' + name + '.txt', 'w')
of.write(txt)
of.close()
Также есть dumpgenerator.py без истории. – Nemo