试图从DnDBeyond下载json文件时出现403错误

2024-10-03 13:28:48 发布

您现在位置:Python中文网/ 问答频道 /正文

我正在做一个D&;从DnDBeyond下载字符表的D bot。不幸的是,尝试下载可公开使用的字符的json文件时,会返回403错误

我正在尝试下载此角色表: https://www.dndbeyond.com/characters/22738330/json

它是公开的,应该返回一个json文件

我使用了以下代码:

import requests
url = "https://www.dndbeyond.com/characters/22738330/json"
response = requests.get(url)
print(response.json())

它不断返回403错误,尽管我可以通过简单的点击在浏览器上加载角色。我哪里做错了


Tags: 文件httpscomjsonurl角色responsewww
3条回答

此网站受https://www.perimeterx.com/whywasiblocked/保护

它检测到您不是真正的用户,并拒绝您的访问。 检查脚本中response.text的输出

要访问json,需要删除路径组件“characters”的复数形式

至于数据格式,我几乎完成了对整个结构的充实

Objective-C源包括所有类定义

https://github.com/mouser/BeyondDnD

尝试添加有效的用户代理和其他标题,使其看起来像是通过浏览器访问

大概是这样的:

headers = {'User-Agent':'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/77.0.3835.0 Safari/537.36',
       'Accept':'text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8',
       'Host':'www.dndbeyond.com',
       'Accept-Language': 'en-US,en;q=0.5',
       'Accept-Encoding': 'gzip, deflate',
       'Upgrade-Insecure-Requests': '1',
       'Connection': 'close'
    }


response = requests.get(url, headers=headers)

相关问题 更多 >