python - 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 的词搜索。
解决方案
HTTP 错误 302:HTTP 服务器返回将导致无限循环的重定向错误。
Http 响应代码 302 用于重定向。在您的情况下,您请求的 url 似乎响应 302 的次数过多,因此 urllib 引发异常以防止您陷入无限的重定向循环。
您请求的 url 可能需要一些 cookie 并在未设置时重定向您。将 cookie 添加到您的请求或使用默认执行此操作的更好的库:http: //docs.python-requests.org/en/master/
推荐阅读
- c# - 无法将 Nuget 包添加到 .NET Core 应用程序
- python - 从脚本/Python 并行运行 Selenium 刮板
- typescript - 剔除可观察数组到下拉列表
- python - How to handle and have two types of users in django
- jquery - Datepicker 不是一个函数(Jquery-UI)
- cassandra - 如何在 Cassandra 中存储动态值
- swift - 非可选 IBOutlet 返回致命错误:当从另一个 UIViewController 类引用时
- binary - 如何用verilog将二进制浮点数转换为十进制数?
- c# - 使用唯一窗口更新对象列表中的多个属性的智能方法
- weblogic - Weblogic 优雅关闭仍接受新连接