Python URL存在时,urllib2捕获404错误
我遇到了一个奇怪的错误:urllib2在打开一个有效的url时捕捉到404错误。我在浏览器中尝试过,url可以打开。我还通过了用户代理Python URL存在时,urllib2捕获404错误,python,python-3.x,http,http-status-code-404,urllib2,Python,Python 3.x,Http,Http Status Code 404,Urllib2,我遇到了一个奇怪的错误:urllib2在打开一个有效的url时捕捉到404错误。我在浏览器中尝试过,url可以打开。我还通过了用户代理 import urllib.request as urllib2 uri = 'https://i.ytimg.com/vi/8Sii8G5CNvY/hqdefault.jpg?custom=true&w=196&h=110&stc=true&jpg444=true&jpgq=90&sp=68&sigh=O
import urllib.request as urllib2
uri = 'https://i.ytimg.com/vi/8Sii8G5CNvY/hqdefault.jpg?custom=true&w=196&h=110&stc=true&jpg444=true&jpgq=90&sp=68&sigh=OIIIAPOKNtx1OiZbAqdORlzl92g'
try:
req = urllib2.Request(uri, headers={ 'User-Agent': 'Mozilla/5.0' })
file = urllib2.urlopen(req)
except urllib2.HTTPError as err:
if err.code == 404:
return "Not Found"
为什么我会犯这个错误?谢谢您的回答。如果您仍然想获取正文,只需使用
err.read()读取错误响应即可。
:
好的,如果您在一些高级HTTP客户机上测试uri,或者打开web浏览器的开发控制台,它会抛出404错误。似乎工作正常。您尝试访问的服务器行为异常:它以404响应,后跟实际文件。命令行工具
wget
也无法获取文档,但是curl
获取文档。你的代码没有问题,显然urllib2
不是为处理这种情况而设计的。但是如果是404错误,我怎么能下载它呢?我可以只做data=file.read(1024)吗?
import urllib2
uri = 'https://i.ytimg.com/vi/8Sii8G5CNvY/hqdefault.jpg?custom=true&w=196&h=110&stc=true&jpg444=true&jpgq=90&sp=68&sigh=OIIIAPOKNtx1OiZbAqdORlzl92g'
try:
req = urllib2.Request(uri, headers={ 'User-Agent': 'Mozilla/5.0' })
file = urllib2.urlopen(req)
except urllib2.HTTPError as err:
if err.code == 404:
print "Not Found"
print err.read()