Wikipedia Python API - 防止隐藏类别
Wikipedia Python API - Prevent hidden categories
我想查找与给定主题相关的主题以及多个主题之间的关系程度。为此,我尝试提取主题的 Wiki 页面并使用主题的类别(在页面底部给出)构建分类法。为此,我想使用维基百科的 Python API (https://wikipedia.readthedocs.org/en/latest/code.html#api)。但是当我提取类别时,它 returns 也包含通常在 Wiki 页面上不可见的隐藏类别。
import wikipedia
import requests
import pprint
from bs4 import BeautifulSoup
wikipedia.set_lang("en")
query = raw_input()
WikiPage = wikipedia.page(title = query,auto_suggest = True)
cat = WikiPage.categories
for i in cat:
print i
我知道另一种选择是使用刮刀。但是我想用 API 来做到这一点。
您绝对可以为此使用 API。只需将 &clshow=!hidden
附加到您的类别查询,如下所示:
http://en.wikipedia.org/w/api.php?action=query&titles=Stack%20Overflow&prop=categories&clshow=!hidden
(我假设这里是英文维基百科,但是 API 到处都是一样的。
另外,要明确一点:维基百科没有“Python API”之类的东西,只有像您这样的简单任务的 MediaWiki API, that you can call from any programming language. In your example code you are using a Python library (one of many) to access the Wikipedia API. This library does not seem to have an option for excluding hidden categories. For a list of other, perhaps more flexible, Python libraries, see http://www.mediawiki.org/wiki/API:Client_code#Python. Personally I quite like wikitools。它看起来像这样:
from wikitools.wiki import Wiki
from wikitools.api import APIRequest
site = Wiki("http://fa.wikipedia.org/w/api.php")
site.login("username", "password")
params = {
"action": "query",
"titles": "سرریز_پشته",
"prop": "categories",
"clshow": "!hidden",
}
request = APIRequest(site, params)
result = request.query()
echo result
我想查找与给定主题相关的主题以及多个主题之间的关系程度。为此,我尝试提取主题的 Wiki 页面并使用主题的类别(在页面底部给出)构建分类法。为此,我想使用维基百科的 Python API (https://wikipedia.readthedocs.org/en/latest/code.html#api)。但是当我提取类别时,它 returns 也包含通常在 Wiki 页面上不可见的隐藏类别。
import wikipedia
import requests
import pprint
from bs4 import BeautifulSoup
wikipedia.set_lang("en")
query = raw_input()
WikiPage = wikipedia.page(title = query,auto_suggest = True)
cat = WikiPage.categories
for i in cat:
print i
我知道另一种选择是使用刮刀。但是我想用 API 来做到这一点。
您绝对可以为此使用 API。只需将 &clshow=!hidden
附加到您的类别查询,如下所示:
http://en.wikipedia.org/w/api.php?action=query&titles=Stack%20Overflow&prop=categories&clshow=!hidden
(我假设这里是英文维基百科,但是 API 到处都是一样的。
另外,要明确一点:维基百科没有“Python API”之类的东西,只有像您这样的简单任务的 MediaWiki API, that you can call from any programming language. In your example code you are using a Python library (one of many) to access the Wikipedia API. This library does not seem to have an option for excluding hidden categories. For a list of other, perhaps more flexible, Python libraries, see http://www.mediawiki.org/wiki/API:Client_code#Python. Personally I quite like wikitools。它看起来像这样:
from wikitools.wiki import Wiki
from wikitools.api import APIRequest
site = Wiki("http://fa.wikipedia.org/w/api.php")
site.login("username", "password")
params = {
"action": "query",
"titles": "سرریز_پشته",
"prop": "categories",
"clshow": "!hidden",
}
request = APIRequest(site, params)
result = request.query()
echo result