2010-11-14 32 views
6

我想用wikionary API獲取選定單詞的含義。 內容檢索數據應該是相同的,如「每日一詞」提出,只有基本的含義,而不etympology,別名等。 例如wikionary API - 單詞的詞義

「仿造品ñ 的戴在頭上的假髮任何項目或臉上,如假鬍鬚或假髮。「

我試過使用文檔,但我可以找到類似的例子,任何人都可以幫助解決這個問題嗎?

+0

我相信主頁上的「每日一詞」框的內容是手動編輯的,以保持簡短。打開文章時,您會看到該詞的更多含義。 – 2010-11-14 01:37:01

+1

另請參閱http://stackoverflow.com/questions/3364279/has-anyone-parsed-wiktionary – pfctdayelise 2010-11-14 12:36:54

回答

13

雖然鏈接到MediaWiki有一個API(api.php),這可能是最簡單的爲您的目的只使用action=raw參數index.php如果你只是想找回一個版本(不是裹着XML,JSON等的源代碼,而不是API)。

例如,這是一天頁面爲11月14日的原話:

http://en.wiktionary.org/w/index.php?title=Wiktionary:Word_of_the_day/November_14&action=raw

什麼不幸的是,維基網頁的格式,側重於表現(對人類閱讀器),而不是語義(針對機器),所以您不應該對沒有「獲取字定義」API命令感到驚訝。相反,您的腳本必須瞭解Wiktionary編輯器創建和使用的衆多文本格式模板,以及複雜的表示格式語法,包括標題,無序列表和其他格式模板。例如,這裏是在網頁「溢出」的源代碼:

http://en.wiktionary.org/w/index.php?title=overflow&action=raw

在API中「生成XML解析樹」的選項,但它不會破壞太多表象的格式化爲XML。只是看到自己:

http://en.wiktionary.org/w/api.php?action=query&titles=overflow&prop=revisions&rvprop=content&rvgeneratexml=&format=jsonfm

如果你想知道是否存在比其他鏈接到MediaWiki鏈接到MediaWiki格式的網頁解析器,沒有,沒有。至少目前沒有用JavaScript編寫的任何內容(請參閱list of alternative parsers,並檢查列出的兩個網站)。即便如此,支持大多數/所有常見模板將是一個巨大的挑戰。祝你好運。

1

好吧,我承認失敗。

some filesPywikipediabot有關維基詞典,我看代碼,它看起來像你應該能夠得到它的解析含義/定義域爲您服務。

然而,最後半小時已經說服了我,否則。代碼寫得不好,我不知道它是否有效。

所以我按照idealmachine's answer,但我想我會張貼這個來拯救任何其他人犯同樣的錯誤。 :)

0

MediaWiki確實有一個API,但它是低層次的,並且不支持任何特定於每個wiki的內容。例如,它沒有維基百科的百科全書支持,也沒有維基文庫的字典支持。您可以使用API​​檢索頁面或部分的原始Wikitext標記,但必須自己解析。

第一個警告是,每個維基詞典都有自己的格式,但我認爲你只對英文維基詞典感興趣。許多工具使用的一個便宜的技巧是獲得以'#'字符開頭的第一行。這通常是第一個同音詞的第一個意義定義的文本。

另一個需要注意的是,每一個維基文庫都使用了很多維基模板,所以如果你在查看原始文本,你會看到很多維基模板。可靠地擴展這些模板的唯一方法是使用action=parse調用API。