如果我运行这个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://stackoverflow.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:发布于 2022-05-24 17:34:08
你可能会陷入重定向。您可以通过设置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())发布于 2022-05-24 17:20:10
对我来说是完美的。如果它“挂起”,一个糟糕的连接会导致它。您可以做的是提供一个timeout参数,它将等待那么多秒,如果它没有接收到来自服务器的响应,它将继续执行代码。
import requests
url = "https://stackoverflow.com"
r = requests.get(url, timeout=2)发布于 2022-05-24 17:26:44
对我来说很管用。但是,如果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]>
200https://stackoverflow.com/questions/72366930
复制相似问题