2016-09-15 3 views
0

Связано с 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() 

ответ

1

В случае, если у вас есть некоторые питона знания вам могут использовать библиотеку mwclient для достижения этой цели:

  1. установить Python 2.7 sudo apt-get install python2.7 (см https://askubuntu.com/questions/101591/how-do-i-install-python-2-7-2-on-ubuntu в случае возникновения проблем)
  2. установить mwclient ниже

    import mwclient 
    wiki = mwclient.Site(('http', 'you-wiki-domain.com'), '/') 
    for page in wiki.Pages: 
        file = open(page.page_title, 'w') 
        file.write(page.text()) 
        file.close() 
    

см mwclient страницу https://github.com/mwclient/mwclient для справки через pip install mwclient

  • выполнения питона сценария

  • +0

    Также есть dumpgenerator.py без истории. – Nemo

    Смежные вопросы