Попытка загрузить файл json из DnDBeyond выдает ошибку 403 - PullRequest
1 голос
/ 05 февраля 2020

Я делаю D & D бота, который загружает таблицы персонажей из DnDBeyond. К сожалению, попытка загрузить файл 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, несмотря на то, что я могу загрузить символ в своем браузере, просто щелкнув по нему. Куда я иду не так?

Ответы [ 2 ]

1 голос
/ 19 февраля 2020

Попробуйте добавить действительный User-Agent и другие заголовки, чтобы создать впечатление, что вы обращаетесь к нему через браузер.

Примерно так:

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)
0 голосов
/ 05 февраля 2020

Этот сайт защищен https://www.perimeterx.com/whywasiblocked/

Он обнаруживает, что вы не являетесь настоящим пользователем, и запрещает доступ для вас. проверьте вывод response.text в вашем скрипте.

...