为什么此请求无法使用此 url
Why is this requests get not working with this url
如果我 运行 这个 Python 代码我的程序就挂了。 (我没有收到任何错误。)
import requests
url = "https://raw.githubusercontent.com/tensorflow/docs/master/site/en/tutorials/generative/dcgan.ipynb"
r = requests.get(url)
但这完全符合预期。
import requests
url = "https://whosebug.com"
r = requests.get(url)
使用 curl
获取 github 文件也能正常工作。
curl https://raw.githubusercontent.com/tensorflow/docs/master/site/en/tutorials/generative/dcgan.ipynb
那么你能重现我的问题吗,我是对一些微不足道的东西加锁了还是只是我的 python 环境的问题?
python3 --version
Python 3.8.10
pip show requests
Name: requests
Version: 2.22.0
Summary: Python HTTP for Humans.
Home-page: http://python-requests.org
Author: Kenneth Reitz
Author-email: me@kennethreitz.org
License: Apache 2.0
Location: /usr/lib/python3/dist-packages
Requires:
Required-by:
它非常适合我。如果它 'hangs' 连接不良可能会导致它。你可以做的是提供一个 timeout
参数,它将等待那么多秒,如果它没有收到来自服务器的响应,它将继续执行代码。
import requests
url = "https://whosebug.com"
r = requests.get(url, timeout=2)
对我有用。但是,如果 requests
仍然存在问题,您甚至可以使用 urllib.request
例如:
import urllib.request
import requests
url = "https://raw.githubusercontent.com/tensorflow/docs/master/site/en/tutorials/generative/dcgan.ipynb"
r = requests.get(url)
print(r)
u = urllib.request.urlopen(url).getcode()
print(u)
它们具有相同的输出:
<Response [200]>
200
您可能被重定向卡住了。您可以通过设置 allow_redirects=False
来克服这个问题。以下代码对我有用:
import requests
url = "https://raw.githubusercontent.com/tensorflow/docs/master/site/en/tutorials/generative/dcgan.ipynb"
try:
r = requests.get(url, allow_redirects=False, timeout=10)
except requests.exceptions.Timeout as err:
print(err)
print(r.json())
如果我 运行 这个 Python 代码我的程序就挂了。 (我没有收到任何错误。)
import requests
url = "https://raw.githubusercontent.com/tensorflow/docs/master/site/en/tutorials/generative/dcgan.ipynb"
r = requests.get(url)
但这完全符合预期。
import requests
url = "https://whosebug.com"
r = requests.get(url)
使用 curl
获取 github 文件也能正常工作。
curl https://raw.githubusercontent.com/tensorflow/docs/master/site/en/tutorials/generative/dcgan.ipynb
那么你能重现我的问题吗,我是对一些微不足道的东西加锁了还是只是我的 python 环境的问题?
python3 --version
Python 3.8.10
pip show requests
Name: requests
Version: 2.22.0
Summary: Python HTTP for Humans.
Home-page: http://python-requests.org
Author: Kenneth Reitz
Author-email: me@kennethreitz.org
License: Apache 2.0
Location: /usr/lib/python3/dist-packages
Requires:
Required-by:
它非常适合我。如果它 'hangs' 连接不良可能会导致它。你可以做的是提供一个 timeout
参数,它将等待那么多秒,如果它没有收到来自服务器的响应,它将继续执行代码。
import requests
url = "https://whosebug.com"
r = requests.get(url, timeout=2)
对我有用。但是,如果 requests
仍然存在问题,您甚至可以使用 urllib.request
例如:
import urllib.request
import requests
url = "https://raw.githubusercontent.com/tensorflow/docs/master/site/en/tutorials/generative/dcgan.ipynb"
r = requests.get(url)
print(r)
u = urllib.request.urlopen(url).getcode()
print(u)
它们具有相同的输出:
<Response [200]>
200
您可能被重定向卡住了。您可以通过设置 allow_redirects=False
来克服这个问题。以下代码对我有用:
import requests
url = "https://raw.githubusercontent.com/tensorflow/docs/master/site/en/tutorials/generative/dcgan.ipynb"
try:
r = requests.get(url, allow_redirects=False, timeout=10)
except requests.exceptions.Timeout as err:
print(err)
print(r.json())