我一直在嘗試創建一個英文維基百科的本地Mediawiki實例,以便我可以對Mediawiki API進行大量沉重而耗時的調用(例如遍歷所有頁面並獲取它們的類別和內部鏈接)如何閱讀維基百科轉儲文件,與我如何通過Mediawiki API獲取信息相似?
到目前爲止,它還沒有解決,轉儲的SQL導入完成或中間進程後總會有一些問題,所以我現在放棄了這一點,但我正在尋找另一種解決方案。
所以說,我想通過所有網頁上的某個類別中,讓每一個網頁的內部鏈接(它鏈接到其他什麼維基百科頁面),在mwclient很容易:
import mwclient
site = mwclient.Site('en.wikipedia.org')
def getPages(c, p):
for page in c:
if page.namespace == 0:
p.append(page)
elif page.namespace == 14:
getPages(page, p)
else:
pass
pages = []
c1 = site.Pages["Category:Mathematics"]
getPages(c1, pages)
但是,它需要我有一個維基百科的運行副本,所以我想知道是否有類似的簡單解決方案可以針對轉儲(XML,SQL,DBPedia或其他轉儲形式)執行,而不是與Mediawiki實例進行通信?