首页  >  文章  >  后端开发  >  为什么我在进行 Python 请求 API 调用时收到“403 Forbidden”错误?

为什么我在进行 Python 请求 API 调用时收到“403 Forbidden”错误?

Susan Sarandon
Susan Sarandon原创
2024-11-02 03:19:30580浏览

Why Am I Getting a

对 Python 请求 API 调用中的“403 Forbidden”错误进行故障排除

当尝试使用 Python 的 requests 模块从网站提取数据时,它不是遇到“403 Forbidden”错误的情况并不常见。此错误表明服务器由于访问限制而拒绝满足请求。

请考虑以下代码片段:

<code class="python">import requests

url = 'http://worldagnetwork.com/'
result = requests.get(url)
print(result.content.decode())</code>

执行时,此代码可能会返回以下错误:

<html>
<head><title>403 Forbidden</title></head>
<body bgcolor="white">
<center><h1>403 Forbidden</h1></center>
<hr><center>nginx</center>
</body>
</html>

本例中的问题是由于网站拒绝缺少正确 User-Agent 标头的 GET 请求。通过在浏览器(例如 Chrome)中访问页面并检查网络流量,我们可以确定浏览器使用的 User-Agent。

要解决该错误,我们需要添加 User-Agent 标头对我们的请求调用:

<code class="python">import requests

url = 'http://worldagnetwork.com/'
headers = {'User-Agent': 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_11_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/50.0.2661.102 Safari/537.36'}
result = requests.get(url, headers=headers)
print(result.content.decode())</code>

添加 User-Agent 标头后,请求现在应该成功解析网站的 HTML 内容。

以上是为什么我在进行 Python 请求 API 调用时收到“403 Forbidden”错误?的详细内容。更多信息请关注PHP中文网其他相关文章!

声明:
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn