维基百科上有很多不是文章的页面,例如谈话页面等。如何通过URL区分他们与文章?如何通过URL区分维基百科文章?
1
A
回答
1
您可以通过使用其API使用以下查询获取百科命名空间及其别名的列表:
http://en.wikipedia.org/w/api.php?action=query&meta=siteinfo&siprop=namespaces
然后,如果页面标题的第一个冒号前的部分匹配任何的已知的命名空间,它不是一篇文章;否则,它是。
2
简短的回答是,你不能只有正则表达式。
较长的答案是MediaWiki文章被命名空间分割,而命名空间反过来使用冒号作为标记,如“Talk:Foo”中所示。文章没有标题中的冒号因此肯定在主(=内容)名称空间中。问题是,带有冒号的文章可能在另一个命名空间或是content articles that happen to contain a colon,并且由于WP的命名空间列表很长并且不断变化,所以您不能(或者至少不应该)在正则表达式中对此列表进行硬编码。
因此,正确的答案是使用MediaWiki API来迭代/搜索主名称空间中的文章。
相关问题
- 1. 如何通过API获取维基百科文章长度?
- 2. 从维基百科获取文章XML转储 - 通过标题
- 3. 如何用R分析维基百科文章的数据库?
- 4. 获得维基百科文章概要
- 5. 总结维基百科文章
- 6. 隐藏维基百科文章反馈
- 7. PHP +维基百科:从维基百科文章的第一段获取内容?
- 8. 维基百科文章url重写规则
- 9. 维基百科的文章频率文章
- 10. 如何抓取维基百科文章的解析信息框?
- 11. 如何获取所有维基百科文章标题?
- 12. 如何获取维基百科文章的默认图片?
- 13. 如何将维基百科文章转换为RSS源项目
- 14. 如何从维基百科获取文章修订历史
- 15. 如何获得维基百科长篇文章的列表?
- 16. 通过模板分配维基百科分类
- 17. 区分维基百科对普通页面的歧义
- 18. 什么是用来当我读到关于维基百科几何/图形文章,以创建维基百科
- 19. 维基百科API
- 20. jsoup - 从维基百科文章中提取文本
- 21. 如何通过API提取维基百科页面WikiTables?
- 22. 检索维基百科文章的第一段
- 23. 从维基百科文章(Python)中提取第一段
- 24. 寻找维基百科文章之间的shotest路径
- 25. iframe维基百科的文章没有包装
- 26. 维基百科文章名称(无内容)
- 27. MediaWiki查询和/或WikidataQuery查找维基百科文章
- 28. 维基百科API - 给定语言的随机文章
- 29. 使用特殊输出从维基百科下载文章
- 30. 使用维基百科API查找文章的主要类别
你到目前为止尝试过什么?谈话页面在标题前面有“Talk:”,在页面标题和URL中都有。 – 2013-04-22 22:18:13
是的,但不仅有谈话页面。我试着只使用alpanumeric网址,但这显然是不正确的。 – lizarisk 2013-04-22 22:20:29