如何修复 Python 请求中的'403 Forbidden”错误?

DDD
发布: 2024-11-01 17:04:03
原创
477 人浏览过

How to Fix

使用 Python 请求解决 API 调用中的“403 Forbidden”错误

尝试使用 Python 的 requests 库解析网站时,可能会遇到“403 Forbidden”错误。此错误通常表示服务器由于缺乏适当的授权或权限而拒绝了您的请求。

错误示例

请考虑以下代码:

<code class="python">url = 'http://worldagnetwork.com/'
result = requests.get(url)
print(result.content.decode())</code>
登录后复制

此代码尝试检索并解码指定 URL 的内容。但是,它会产生以下输出:

<code class="html"><html>
<head><title>403 Forbidden</title></head>
<body bgcolor="white">
<center><h1>403 Forbidden</h1></center>
<hr><center>nginx</center>
</body>
</html></code>
登录后复制

根本原因

在这种特定情况下,出现问题是因为服务器拒绝没有 User-Agent 标头的 GET 请求。 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 标头设置为适当的值,您可以有效地模仿浏览器并成功检索网站的内容,如以下输出所示:

<code class="html"><!doctype html>
<!--[...]-->
<!--[...]--></code>
登录后复制

以上是如何修复 Python 请求中的'403 Forbidden”错误?的详细内容。更多信息请关注PHP中文网其他相关文章!

来源:php.cn
本站声明
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板
关于我们 免责声明 Sitemap
PHP中文网:公益在线PHP培训,帮助PHP学习者快速成长!