Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/358.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/regex/19.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python:检查维基百科文章是否存在_Python - Fatal编程技术网

Python:检查维基百科文章是否存在

Python:检查维基百科文章是否存在,python,Python,我想知道如何检查维基百科的文章是否存在。比如说, https://en.wikipedia.org/wiki/Food 然而,它是存在的 https://en.wikipedia.org/wiki/Fod 没有,页面上简单地说,“维基百科没有一篇有这个确切名称的文章。” 谢谢 >>> import urllib >>> print urllib.urlopen("https://en.wikipedia.org/wiki/Food").getcode()

我想知道如何检查维基百科的文章是否存在。比如说,

https://en.wikipedia.org/wiki/Food
然而,它是存在的

https://en.wikipedia.org/wiki/Fod 
没有,页面上简单地说,“维基百科没有一篇有这个确切名称的文章。”

谢谢

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


尽管Wikipedia确实提供了一个页面,但如果您查看其请求和响应数据,您将看到:

  • 状态:未找到
  • 代码:404
在Python2.6之后,您可以使用

import urllib

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

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

基本上,大多数网站或web服务都会在HTTP响应标头中宣布每个HTTP请求的某些状态。
在您的情况下,您可以简单地找到状态代码,如果它是404,而文章不存在,即使您的浏览器呈现的页面与正常结果类似

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

您可以使用WikipediaAPI for Python,只需使用关键字即可搜索文章。它还建议您搜索与之密切相关的可用文章。检查下面的示例

>>> import wikipedia as wiki
>>> wiki.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']
>>> wiki.search("Ford", results=3)
    [u'Ford Motor Company', u'Gerald Ford', u'Henry Ford']

是python模块的链接。

奇怪的是,它看起来真的像以下问题:这是python 2代码。在Python3中,您将使用
urllib.request.urlopen
,这是Python2代码。在Python 3中,您将使用urllib.request.urlopen。
>>> import wikipedia as wiki
>>> wiki.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']
>>> wiki.search("Ford", results=3)
    [u'Ford Motor Company', u'Gerald Ford', u'Henry Ford']