Страница 1 из 2 12 ПоследняяПоследняя
Показано с 1 по 10 из 11

Тема: Как исправить response 403 в Python requests: что делать?

  1. Как исправить response 403 в Python requests: что делать?

    Привет, народ! Пытаюсь написать скрипт на Python, который дергает API и возвращает мне данные. Но вместо желанных данных получаю злосчастный response 403. Похоже, доступ закрыт или что-то не так с моим запросом. Чё вообще происходит и как это фиксить? Может, кто знает, как можно переслать правильные хедеры или может, есть какие-то обходные пути, чтобы получить доступ? Поделитесь опытом, ребят!



  2. Ждём вас в нашем чате в Телеграмм ==>> @pythoneer_chat

    А ТАКЖЕ: Канал о Python, статьи и книги ==>>
    @pythoneer_ru

  3. 403-я часто возникает из-за отсутствия правильных хедеров, типа заголовка User-Agent. Попробуй что-то такое:

    Программный код:
    import requests

    url 
    'https://example.com/api/data'
    headers = {
    'User-Agent''Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/58.0.3029.110 Safari/537.3'
    }

    response requests.get(urlheaders=headers)
    print(
    response.status_code)
    print(
    response.text
    Но если это не работает, возможно, API просто ограничивает доступ к некоторым IP или требует авторизацию. Лучше знать правила игры (читай документацию API).

  4. Цитата Сообщение от Ангел
    403-я часто возникает из-за отсутствия правильных хедеров, типа заголовка User-Agent. Попробуй что-то такое:

    Программный код:
    import requests

    url 
    'https://example.com/api/data'
    headers = {
    'User-Agent''Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/58.0.3029.110 Safari/537.3'
    }

    response requests.get(urlheaders=headers)
    print(
    response.status_code)
    print(
    response.text
    Но если это не работает, возможно, API просто ограничивает доступ к некоторым IP или требует авторизацию. Лучше знать правила игры (читай документацию API).
    Эй, крутой пример! Но что, если API требует не только User-Agent, но и какие-то аутентификационные данные? Как бы это аккуратно добавить?

  5. Ага, у меня тоже такое было! Я добавил куки в запрос и всё заработало:

    Программный код:
    import requests

    url 
    'https://example.com/api/data'
    cookies = {
    'session_id''xxx'
    }

    response requests.get(urlcookies=cookies)
    print(
    response.status_code)
    print(
    response.text
    Глянь куки, может, есть какие нужные для доступа!

  6. Цитата Сообщение от Лазурь
    Ага, у меня тоже такое было! Я добавил куки в запрос и всё заработало:

    Программный код:
    import requests

    url 
    'https://example.com/api/data'
    cookies = {
    'session_id''xxx'
    }

    response requests.get(urlcookies=cookies)
    print(
    response.status_code)
    print(
    response.text
    Глянь куки, может, есть какие нужные для доступа!
    Вау, куки тоже вариант! Походу, если запрос сложный, лучше все подряд выгружать и пробовать по очереди!

  7. Можешь ещё попробовать поменять свой IP-адрес через VPN или просто пересмотреть настройки файрволла. А вдруг кто-то заблокировал твою тачку.

  8. Цитата Сообщение от Нина Васильевна
    Можешь ещё попробовать поменять свой IP-адрес через VPN или просто пересмотреть настройки файрволла. А вдруг кто-то заблокировал твою тачку.
    Хм, смена IP звучит радикально, но, видимо, иногда это единственное решение. Надо же как-то работать!

  9. О да, частенько ошибка 403 выскакивает, если запросы слишком частые. Пробовал ли увеличить интервал между запросами? Вот пример с задержкой:

    Программный код:
    import requests
    import time

    url 
    'https://example.com/api/data'

    while True:
    response requests.get(url)
    if 
    response.status_code == 200:
    print(
    response.text)
    break
    time.sleep(5)  # добавь задержку 
    Поспокойней отправляй, и сервак тебя не забанит.

  10. Цитата Сообщение от LightBringer
    О да, частенько ошибка 403 выскакивает, если запросы слишком частые. Пробовал ли увеличить интервал между запросами? Вот пример с задержкой:

    Программный код:
    import requests
    import time

    url 
    'https://example.com/api/data'

    while True:
    response requests.get(url)
    if 
    response.status_code == 200:
    print(
    response.text)
    break
    time.sleep(5)  # добавь задержку 
    Поспокойней отправляй, и сервак тебя не забанит.
    Воу, это мысль! Часто банят за спам запросами. Расслабиться и подождать - может, сработает.

Страница 1 из 2 12 ПоследняяПоследняя