Как обойти защиту яндекса от ботов?

Имеется сервис балабоба Смысл данного сервиса это продолжение вашей истории.

Я захотел написать простой скрипт который будет продолжать за вас историю не заставляя вас идти в браузер.

Создал данный код:

import requests

story = input("Введи начало истории: ")

json_data = {
    'query': f'{story}',
    'intro': 0,
    'filter': 1,
}

response = requests.post('https://yandex.ru/lab/api/yalm/text3', headers=headers, json=json_data)
print(response.text)

Но с данным кодом Яндекс присылал мне ошибку 403.

Я решил симулировать свой браузер что бы получить данные и сделал такой код:

import requests

story = input("Введи начало истории: ")

cookies = {
    'Тут мои куки'
}

headers = {
    'authority': 'yandex.ru',
    'accept': '*/*',
    'accept-language': 'ru-RU,ru;q=0.9,en-US;q=0.8,en;q=0.7',
    'content-type': 'application/json',
    'device-memory': '8',
    'downlink': '0.95',
    'dpr': '1',
    'ect': '4g',
    'origin': 'https://yandex.ru',
    'referer': 'https://yandex.ru/lab/yalm?style=0',
    'rtt': '250',
    'sec-ch-ua': '"Opera";v="93", "Not/A)Brand";v="8", "Chromium";v="107"',
    'sec-ch-ua-mobile': '?0',
    'sec-ch-ua-platform': '"Windows"',
    'sec-fetch-dest': 'empty',
    'sec-fetch-mode': 'cors',
    'sec-fetch-site': 'same-origin',
    'user-agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/107.0.0.0 Safari/537.36 OPR/93.0.0.0 (Edition Yx 05)',
    'viewport-width': '948',
}

json_data = {
    'query': f'{story}',
    'intro': 0,
    'filter': 1,
}

response = requests.post('https://yandex.ru/lab/api/yalm/text3', cookies=cookies, 
headers=headers, json=json_data)
print(response.text)

И тут начинается самое интересно, я скинул этот скрипт знакомому и у него все успешно работает. Но как только я запускаю данный скрипт, мне возвращается 403. Я проверил этот скрипт на 5 разных компах, и с прокси, и юзаерагнты ботов гугла и яндекса ставил. Все бесполезно.

Может подскажете в чем может быть ошибка и палево для яндекса?


Ответы (1 шт):

Автор решения: Imas

Используй fakeuseragent ссылка на pypi :(https://pypi.org/project/fake_user_agent/)

→ Ссылка