对 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中文网其他相关文章!