📜  python requests.get pdf 找不到所请求资源的适当表示 - Python (1)

📅  最后修改于: 2023-12-03 15:34:04.092000             🧑  作者: Mango

Python requests.get() 找不到所请求资源的适当表示

当使用 Python 的 requests 库发送 GET 请求时,若所请求的资源返回 404 错误,请求就会失败。在这种情况下,程序可能会输出一个错误信息,例如“找不到所请求资源的适当表示”。

但是,这个错误信息并没有提供足够的信息帮助我们解决此问题。在本文中,我们将讨论如何处理此问题,并找到更有用的错误信息。

首先,我们可以使用 try-except 语句来捕获异常并打印更通用的错误消息。

import requests

url = "https://example.com/missing-page"

try:
    response = requests.get(url)
    response.raise_for_status()
except requests.HTTPError as http_err:
    print(f"HTTP error occurred: {http_err}")
except Exception as err:
    print(f"Other error occurred: {err}")
else:
    print("Success")

在此示例中,我们使用 response.raise_for_status() 来检查响应是否返回 404 错误,并将异常转换为更通用的 HTTPError。如果请求成功,我们输出 "Success"。

这种方法的另一个好处是在发生错误时,我们可以获得更多有用的信息,例如所请求的 URL 和服务器返回的错误消息。

接下来,我们可以查看服务器返回的完整响应内容,而不仅仅是错误消息。我们可以使用 .content 属性访问响应内容。

import requests

url = "https://example.com/missing-page"

try:
    response = requests.get(url)
    response.raise_for_status()
except requests.HTTPError as http_err:
    print(f"HTTP error occurred: {http_err}")
    print(response.content)
except Exception as err:
    print(f"Other error occurred: {err}")
else:
    print("Success")

在此示例中,我们输出服务器返回的完整响应内容,而不仅仅是错误消息。

最后,我们可以使用更复杂的逻辑来处理不同类型的错误,并输出更具体的错误消息。

import requests

url = "https://example.com/missing-page"

try:
    response = requests.get(url)
    response.raise_for_status()
except requests.HTTPError as http_err:
    if response.status_code == 404:
        print(f"The requested page could not be found: {url}")
    elif response.status_code == 403:
        print(f"Access denied to the requested page: {url}")
    else:
        print(f"HTTP error occurred: {http_err}")
        print(response.content)
except requests.exceptions.RequestException as err:
    print(f"Other error occurred: {err}")
else:
    print("Success")

在此示例中,我们首先检查响应的状态码以确定错误的类型,并输出具体的错误消息。我们还使用 requests.exceptions.RequestException 处理更普遍的异常情况,并输出更通用的错误消息。如果请求成功,我们输出 "Success"。

总结:

当使用 Python 的 requests 库发送 GET 请求时,若所请求的资源返回 404 错误,程序可能会输出“找不到所请求资源的适当表示”的错误消息。为了解决此问题,我们可以使用 try-except 语句来捕获异常并打印更通用的错误消息。我们还可以查看服务器返回的完整响应内容,并使用更复杂的逻辑来处理不同类型的错误,并输出更具体的错误消息。