首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >区分Wiki中的文章页面和列表/消歧页面

问区分Wiki中的文章页面和列表/消歧页面
EN

Stack Overflow用户
提问于 2014-04-23 04:45:18
回答 2查看 596关注 0票数 1

我使用'https://en.wikipedia.org/wiki/Special:Random‘从维基百科生成随机页面,并使用BeautifulSoup阅读它们。问题是我只想要像这样的文章页面:

http://en.wikipedia.org/wiki/Ada_County,_Idaho

但有时它是列表页或消歧页(我不想要)。例如:http://en.wikipedia.org/wiki/List_of_U.S._counties_named_after_personal_first_names

有没有一种简单的方法来区分这些情况?

EN

回答 2

Stack Overflow用户

发布于 2014-04-23 09:22:50

使用the API来判断页面是否具有消歧功能。例如,this将在文章命名空间(try interactively in sandbox)中检索10个随机标题。消歧页面的属性中将包含"pageprops":{"disambiguation":""}。不幸的是,列表没有这样简单的方法,你必须根据它们的标题(/^List of .*/)或类别来猜测。

票数 2
EN

Stack Overflow用户

发布于 2014-04-23 14:06:58

通过在WikiData中查询P31 (instance of)的值,可以(大多数情况下)区分列表页。List pages的值为Q13406463 (维基媒体列表页)。

代码语言:javascript
复制
https://www.wikidata.org/w/api.php?action=wbgetentities&ids=Q678323

如果您正在使用此方法,则可以同时检查消歧页面。这些值为will have Q4167410 (Wikimedia disambiguation page)。

有许多用于与Python进行交互的MediaWiki库,例如wikitools

代码语言:javascript
复制
listOfTitles = 'Ada_County,_Idaho|List_of_U.S._counties_named_after_personal_first_names'

site = wikitools.Wiki("http://www.wikidata.org/w/api.php", user, password)
site.login(user,password)

params = {'action':'wbgetentities', 'props':'claims','titles':listOfTitles,'format':'json'}
request = wikitools.APIRequest(site, params)
result = request.query()
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/23229830

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档