维基百科Python API-防止隐藏类别

维基百科Python API-防止隐藏类别,python,wikipedia-api,Python,Wikipedia Api,我想找到与给定主题相关的主题,以及多个主题之间的关系程度。为此,我尝试提取主题的Wiki页面,并使用主题的类别(在页面底部给出)构建分类法。我想为此()使用Wikipedia的Python API。但当我提取类别时,它也会返回通常在Wiki页面上不可见的隐藏类别 import wikipedia import requests import pprint from bs4 import BeautifulSoup wikipedia.set_lang("en") query = raw_inp

我想找到与给定主题相关的主题,以及多个主题之间的关系程度。为此,我尝试提取主题的Wiki页面,并使用主题的类别(在页面底部给出)构建分类法。我想为此()使用Wikipedia的Python API。但当我提取类别时,它也会返回通常在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=!隐藏到您的类别查询中,如下所示:

http://en.wikipedia.org/w/api.php?action=query&titles=Stack%20Overflow&prop=categories&clshow=!hidden
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
(我假设这里有英文维基百科,但API在任何地方都是一样的

另外,需要明确的是:Wikipedia没有“Python API”这样的东西,只有可以从任何编程语言调用的访问Wikipedia API。此库似乎没有排除隐藏类别的选项。有关其他可能更灵活的Python库的列表,请参阅。就我个人而言,我非常喜欢像您这样的简单任务。然后它会像这样:

http://en.wikipedia.org/w/api.php?action=query&titles=Stack%20Overflow&prop=categories&clshow=!hidden
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