Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/python-2.7/5.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 urllib2.HTTPError:HTTP错误404:找不到有效url_Python_Python 2.7_Urllib2_Facebook Opengraph - Fatal编程技术网

Python urllib2.HTTPError:HTTP错误404:找不到有效url

Python urllib2.HTTPError:HTTP错误404:找不到有效url,python,python-2.7,urllib2,facebook-opengraph,Python,Python 2.7,Urllib2,Facebook Opengraph,我正在使用python opengraph库解析网站的opengraph标记 当我运行这个脚本时,我得到以下错误 Traceback (most recent call last): File "test.py", line 16, in <module> raw = urllib2.urlopen(url) File "/usr/lib/python2.7/urllib2.py", line 127, in urlopen return _opener.op

我正在使用python opengraph库解析网站的opengraph标记

当我运行这个脚本时,我得到以下错误

Traceback (most recent call last):
  File "test.py", line 16, in <module>
    raw = urllib2.urlopen(url)
  File "/usr/lib/python2.7/urllib2.py", line 127, in urlopen
    return _opener.open(url, data, timeout)
  File "/usr/lib/python2.7/urllib2.py", line 410, in open
    response = meth(req, response)
  File "/usr/lib/python2.7/urllib2.py", line 523, in http_response
    'http', request, response, code, msg, hdrs)
  File "/usr/lib/python2.7/urllib2.py", line 448, in error
    return self._call_chain(*args)
  File "/usr/lib/python2.7/urllib2.py", line 382, in _call_chain
    result = func(*args)
  File "/usr/lib/python2.7/urllib2.py", line 531, in http_error_default
    raise HTTPError(req.get_full_url(), code, msg, hdrs, fp)
urllib2.HTTPError: HTTP Error 404: Not Found
回溯(最近一次呼叫最后一次):
文件“test.py”,第16行,在
raw=urlib2.urlopen(url)
文件“/usr/lib/python2.7/urllib2.py”,urlopen中的第127行
return\u opener.open(url、数据、超时)
文件“/usr/lib/python2.7/urllib2.py”,第410行,打开
响应=方法(请求,响应)
http_响应中的文件“/usr/lib/python2.7/urllib2.py”,第523行
“http”、请求、响应、代码、消息、hdrs)
文件“/usr/lib/python2.7/urllib2.py”,第448行出错
返回自我。调用链(*args)
文件“/usr/lib/python2.7/urllib2.py”,第382行,在调用链中
结果=func(*args)
文件“/usr/lib/python2.7/urllib2.py”,第531行,默认为http\u error\u
raise HTTPError(请求获取完整url(),代码,消息,hdrs,fp)
urllib2.HTTPError:HTTP错误404:未找到
urllib2用于在解析html之前获取html

为什么我会收到这个404错误?我可以从浏览器访问此url,还可以使用此php库检索此url的open graph标记

python库能够检索所有其他url的open graph标记,但此url似乎是一个异常情况。

更新: 由于您的请求未通过用户代理,因此您将得到404响应。 刚刚在virtualenv上安装opengraph进行测试,在标题中添加缺少的用户代理后,它就可以工作了:

Traceback (most recent call last):
  File "test.py", line 16, in <module>
    raw = urllib2.urlopen(url)
  File "/usr/lib/python2.7/urllib2.py", line 127, in urlopen
    return _opener.open(url, data, timeout)
  File "/usr/lib/python2.7/urllib2.py", line 410, in open
    response = meth(req, response)
  File "/usr/lib/python2.7/urllib2.py", line 523, in http_response
    'http', request, response, code, msg, hdrs)
  File "/usr/lib/python2.7/urllib2.py", line 448, in error
    return self._call_chain(*args)
  File "/usr/lib/python2.7/urllib2.py", line 382, in _call_chain
    result = func(*args)
  File "/usr/lib/python2.7/urllib2.py", line 531, in http_error_default
    raise HTTPError(req.get_full_url(), code, msg, hdrs, fp)
urllib2.HTTPError: HTTP Error 404: Not Found
url = 'http://www.foxnews.com/world/2014/10/20/uk-gun-owners-now-subject-to-warrantless-home-searches/'
req = opengraph.opengraph.urllib2.Request(url, headers={ 'User-Agent': 'Mozilla/5.0' })
og = opengraph.OpenGraph()
og.parser(opengraph.opengraph.urllib2.urlopen(req).read())
og.to_json()

'{"site_name": "Fox News", "description": "Registered gun owners in the United Kingdom are now subject to unannounced visits to their homes under new guidance that allows police to inspect firearms storage without a warrant.", "title": "UK gun owners now subject to warrantless home searches", "url": "http://www.foxnews.com/world/2014/10/20/uk-gun-owners-now-subject-to-warrantless-home-searches/", "image": "http://global.fncstatic.com/static/v/all/img/fn_128x128.png", "scrape": false, "_url": null, "type": "article"}'