首页 > 解决方案 > python中的Http错误302

问题描述

因此,在使用 urllib 时出现此错误,这是完整的回溯:

Traceback (most recent call last):
  File "C:\Users\user\Desktop\Dads project\Word search tool.py", line 
148, in <module>
 print_absolute_counts(line.strip('\n'), 'english', smoothing=0, 
 start_year=1799, end_year=1801)
File "C:\Users\user\Desktop\project\Word search tool.py", line 43, in 
print_absolute_counts
    absolute_counts = retrieve_absolute_counts(token, corpus, smoothing, 
start_year, end_year)
File "C:\Users\user\Desktop\Dads project\Word search tool.py", line 85, in 
retrieve_absolute_counts
   page = urllib.request.urlopen(urllib.request.Request(url)).read()
  File "C:\Users\user\AppData\Local\Programs\Python\Python37- 
 32\lib\urllib\request.py", line 222, in urlopen
   return opener.open(url, data, timeout)
File "C:\Users\user\AppData\Local\Programs\Python\Python37- 
32\lib\urllib\request.py", line 531, in open
response = meth(req, response)
 File "C:\Users\user\AppData\Local\Programs\Python\Python37- 
  32\lib\urllib\request.py", line 641, in http_response
'http', request, response, code, msg, hdrs)
  File "C:\Users\user\AppData\Local\Programs\Python\Python37-32\lib\urllib\request.py", line 563, in error
result = self._call_chain(*args)
 File "C:\Users\user\AppData\Local\Programs\Python\Python37-32\lib\urllib\request.py", line 503, in _call_chain
result = func(*args)
 File "C:\Users\user\AppData\Local\Programs\Python\Python37-32\lib\urllib\request.py", line 755, in http_error_302
return self.parent.open(new, timeout=req.timeout)
 File "C:\Users\user\AppData\Local\Programs\Python\Python37-32\lib\urllib\request.py", line 531, in open
response = meth(req, response)
 File "C:\Users\user\AppData\Local\Programs\Python\Python37-32\lib\urllib\request.py", line 641, in http_response
'http', request, response, code, msg, hdrs)
  File "C:\Users\user\AppData\Local\Programs\Python\Python37-32\lib\urllib\request.py", line 563, in error
result = self._call_chain(*args)
  File "C:\Users\user\AppData\Local\Programs\Python\Python37-32\lib\urllib\request.py", line 503, in _call_chain
result = func(*args)
 File "C:\Users\user\AppData\Local\Programs\Python\Python37-32\lib\urllib\request.py", line 755, in http_error_302
return self.parent.open(new, timeout=req.timeout)
  File "C:\Users\user\AppData\Local\Programs\Python\Python37-32\lib\urllib\request.py", line 531, in open
response = meth(req, response)
  File "C:\Users\user\AppData\Local\Programs\Python\Python37-32\lib\urllib\request.py", line 641, in http_response
'http', request, response, code, msg, hdrs)
 File "C:\Users\user\AppData\Local\Programs\Python\Python37-32\lib\urllib\request.py", line 563, in error
result = self._call_chain(*args)
  File "C:\Users\user\AppData\Local\Programs\Python\Python37-32\lib\urllib\request.py", line 503, in _call_chain
result = func(*args)
 File "C:\Users\user\AppData\Local\Programs\Python\Python37-32\lib\urllib\request.py", line 755, in http_error_302
return self.parent.open(new, timeout=req.timeout)
  File "C:\Users\user\AppData\Local\Programs\Python\Python37-32\lib\urllib\request.py", line 531, in open
response = meth(req, response)
  File "C:\Users\user\AppData\Local\Programs\Python\Python37-32\lib\urllib\request.py", line 641, in http_response
'http', request, response, code, msg, hdrs)
  File "C:\Users\user\AppData\Local\Programs\Python\Python37-32\lib\urllib\request.py", line 563, in error
result = self._call_chain(*args)
  File "C:\Users\user\AppData\Local\Programs\Python\Python37-32\lib\urllib\request.py", line 503, in _call_chain
result = func(*args)
  File "C:\Users\user\AppData\Local\Programs\Python\Python37-32\lib\urllib\request.py", line 755, in http_error_302
return self.parent.open(new, timeout=req.timeout)
  File "C:\Users\user\AppData\Local\Programs\Python\Python37-32\lib\urllib\request.py", line 531, in open
response = meth(req, response)
  File "C:\Users\user\AppData\Local\Programs\Python\Python37-32\lib\urllib\request.py", line 641, in http_response
'http', request, response, code, msg, hdrs)
  File "C:\Users\user\AppData\Local\Programs\Python\Python37-32\lib\urllib\request.py", line 563, in error
result = self._call_chain(*args)
  File "C:\Users\user\AppData\Local\Programs\Python\Python37-32\lib\urllib\request.py", line 503, in _call_chain
result = func(*args)
  File "C:\Users\user\AppData\Local\Programs\Python\Python37-32\lib\urllib\request.py", line 745, in http_error_302
   self.inf_msg + msg, headers, fp)
urllib.error.HTTPError: HTTP Error 302: The HTTP server returned a redirect error that would lead to an infinite loop.
The last 30x error message was:

发现我想知道他们是否是解决此问题的一种方法,当我在网站中搜索某些内容并返回此内容时,其他搜索似乎可以正常工作,但是此特定搜索是: aaliis 返回错误,这是一种google ngrams 的词搜索。

标签: pythonurllib

解决方案


HTTP 错误 302:HTTP 服务器返回将导致无限循环的重定向错误。

Http 响应代码 302 用于重定向。在您的情况下,您请求的 url 似乎响应 302 的次数过多,因此 urllib 引发异常以防止您陷入无限的重定向循环。

您请求的 url 可能需要一些 cookie 并在未设置时重定向您。将 cookie 添加到您的请求或使用默认执行此操作的更好的库:http: //docs.python-requests.org/en/master/


推荐阅读