Python:检查Wikipedia文章是否存在

时间:2015-07-24 09:18:15

标签: python

我正在试图弄清楚如何检查维基百科文章是否存在。例如,

https://en.wikipedia.org/wiki/Food
然而

存在

https://en.wikipedia.org/wiki/Fod 

没有,页面上只是说,“维基百科没有一篇具有这个确切名称的文章。”

谢谢!

4 个答案:

答案 0 :(得分:4)

>>> import urllib
>>> print urllib.urlopen("https://en.wikipedia.org/wiki/Food").getcode()
200
>>> print urllib.urlopen("https://en.wikipedia.org/wiki/Fod").getcode()
404

没关系?

>>> a = urllib.urlopen("https://en.wikipedia.org/wiki/Fod").getcode()
>>> if a == 404:
...     print "Wikipedia does not have an article with this exact name."
...
Wikipedia does not have an article with this exact name.

答案 1 :(得分:2)

您可以使用Wikipedia Api for Python,只需使用该关键字搜索文章。它还会向您推荐密切相关的可用文章。请查看以下示例

>>> import wikipedia as wiki
>>> wikipedia.search("Barack")
    [u'Barak (given name)', u'Barack Obama', u'Barack (brandy)', u'Presidency of Barack Obama', u'Family of Barack Obama', u'First inauguration of Barack Obama', u'Barack Obama presidential campaign, 2008', u'Barack Obama, Sr.', u'Barack Obama citizenship conspiracy theories', u'Presidential transition of Barack Obama']
>>> wikipedia.search("Ford", results=3)
    [u'Ford Motor Company', u'Gerald Ford', u'Henry Ford']

Here是python模块的链接。

答案 2 :(得分:1)

即使维基百科提供了一个页面,如果你查看它的请求&响应数据,你会看到:

  • 状态:未找到
  • 代码: 404

发布Python 2.6,你可以使用

import urllib

urllib.urlopen("https://some-url").getcode()

在代码中返回要测试的请求的状态代码。

答案 3 :(得分:1)

基本上,大多数网站或Web服务都会在HTTP响应标头中的每个HTTP请求中声明一些状态 在您的情况下,即使您的浏览器呈现的页面类似于normol结果,您也可以在文章不存在的情况下找到状态代码,如果 404

import request
result = request.get('https://en.wikipedia.org/wiki/Food')
if result.status_code == 200:  # the article exists
    pass  # blablabla