2016-09-15 87 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'; 

然後將其分割成單獨的文件,使用Python:

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

如果你有一些你的Python知識可以利用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. 通過pip install mwclient
  3. 運行python腳本安裝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參考

+0

還有沒有歷史的dumpgenerator.py。 – Nemo

相關問題