2013-08-25 35 views
3

我真的試圖建立與維基API查詢將返回來自特定文章的所有內部鏈接的ID格式。 我有一些文章的pageId。例如,對於文章的「Android(業務系統)」 id爲12610483. 在我的客戶端,我需要只能通過ID只能用id來工作,後來獲得的所有信息。 我的目標是從文章ID中找到所有內部鏈接(文章的ID)。如何獲得通過的pageid在維基百科特定頁面的所有鏈接(ID)

不幸的是,唯一可行的辦法,我發現是獲得通過的文章標題爲代表的聯繫: http://en.wikipedia.org/w/api.php?action=parse&format=json&pageid=12610483&prop=links

是否有任何其他方式獲得的鏈接IDS以及不僅冠軍?

回答

4

你想要做的是使用action=query&prop=linkspagelinks數據庫表中獲取數據,而不是解析頁面文本。

這仍然會給你唯一的頁面標題(因爲鏈接會導致一個不存在的頁面,這意味着沒有頁面ID)。

但是你可以通過使用prop=links作爲發電機解決這個問題:

http://en.wikipedia.org/w/api.php?action=query&format=json&pageids=12610483&generator=links&gpllimit=max

如果文章有很多鏈接(如你所說的),你將需要使用分頁(見gplcontinue元素)。

+0

非常感謝! :)其工作,謝謝! –

+0

@svick。這種方法只計算一次鏈接。我想知道是否有任何方法可以跟蹤頁面中每個鏈接的數量?例如,它不僅告訴給定頁面鏈接到***的Android-x86的***,而且它告訴** Android的86 **使用**畝**倍的文章?是否可以使用mediawiki API?謝謝。 – chepukha

+1

@chepukha信息不被存儲在'pagelinks'表(或其他地方,至少不是直接),所以你不會找到,一個API方法。您需要解析頁面文本,無論是原始wiki文本還是HTML格式。 – svick

-3

我認爲你需要使用PHP簡單的HTML DOM解析器

你不能在這裏找到它 http://simplehtmldom.sourceforge.net/

+1

1.絕對沒有任何理由在這裏使用HTML解析器。 2.這將如何幫助獲取頁面ID? – svick

相關問題