Python 无法使用urllib2或请求获取url

Python 无法使用urllib2或请求获取url,python,urllib2,python-requests,Python,Urllib2,Python Requests,我尝试在远程Ubuntu服务器上执行此操作: >>> import urllib2, requests >>> url = 'http://python.org/' >>> urllib2.urlopen(url) Traceback (most recent call last): File "<stdin>", line 1, in <module> File "/usr/lib/python2.7/url

我尝试在远程Ubuntu服务器上执行此操作:

>>> import urllib2, requests
>>> url = 'http://python.org/'
>>> urllib2.urlopen(url)
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
  File "/usr/lib/python2.7/urllib2.py", line 126, in urlopen
    return _opener.open(url, data, timeout)
  File "/usr/lib/python2.7/urllib2.py", line 406, in open
    response = meth(req, response)
  File "/usr/lib/python2.7/urllib2.py", line 519, in http_response
    'http', request, response, code, msg, hdrs)
  File "/usr/lib/python2.7/urllib2.py", line 444, in error
    return self._call_chain(*args)
  File "/usr/lib/python2.7/urllib2.py", line 378, in _call_chain
    result = func(*args)
  File "/usr/lib/python2.7/urllib2.py", line 527, in http_error_default
    raise HTTPError(req.get_full_url(), code, msg, hdrs, fp)
urllib2.HTTPError: HTTP Error 404: Not Found

>>> requests.get(url)
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
  File "/home/django/zyq2/venv/local/lib/python2.7/site-packages/requests/api.py", line 55, in get
    return request('get', url, **kwargs)
  File "/home/django/zyq2/venv/local/lib/python2.7/site-packages/requests/api.py", line 44, in request
    return session.request(method=method, url=url, **kwargs)
  File "/home/django/zyq2/venv/local/lib/python2.7/site-packages/requests/sessions.py", line 382, in request
    resp = self.send(prep, **send_kwargs)
  File "/home/django/zyq2/venv/local/lib/python2.7/site-packages/requests/sessions.py", line 505, in send
    history = [resp for resp in gen] if allow_redirects else []
  File "/home/django/zyq2/venv/local/lib/python2.7/site-packages/requests/sessions.py", line 99, in resolve_redir  ts
    raise TooManyRedirects('Exceeded %s redirects.' % self.max_redirects)
requests.exceptions.TooManyRedirects: Exceeded 30 redirects.

无限循环我的意思是TooManyRedirects异常。

尝试使用用户代理:

req = urllib2.Request(url, headers={ 'User-Agent': 'Mozilla/5.0' })
urllib2.urlopen(req).read()

如果它仍然不能工作,那可能是你的Ubuntu离线了

您好,谢谢您的回复,但它不起作用,我用您的建议更新了问题。你说Ubuntu离线是什么意思?这是一个运行多个站点的生产服务器。请尝试使用本文中接受的答案:它引发异常类型错误:必须使用CookieJar实例调用unbound方法add\u cookie\u头,作为第一个参数,而不是获取请求实例。顺便说一句,它必须在没有cookie的情况下工作,如Python文档第一个示例所示
>>> req = urllib2.Request(url, headers={ 'User-Agent': 'Mozilla/5.0' })
>>> urllib2.urlopen(req).read()
...
long traceback (more than one page)
...
urllib2.HTTPError: HTTP Error 303: The HTTP server returned a redirect error that would lead to an infinite loop.
The last 30x error message was:
See Other
req = urllib2.Request(url, headers={ 'User-Agent': 'Mozilla/5.0' })
urllib2.urlopen(req).read()