Python API для Яндекс.Аура
В разработке
Требуется Python 3, тестировалось на Python 3.7
- Установка с помощью pip
pip3 install aura-api
- Установка из исходников
git clone https://github.com/mickxolotl/aura-api.git
cd aura-api
python3 setup.py install
Примеры использования можно найти в каталоге examples
import aura
api = aura.API(aura.AuthSession('LOGIN', 'PASSWORD'))
Заменив строки на свои логин и пароль, выполните код.
Теперь можно обращаться к методам АПИ ауры.
Например, обращения к методу /api/user/interests/
или /api/post/info/<post_id>/
выполняются соответственно
api.user.interests()
# и
api.post.info[post_id]()
Параметры запроса можно указать в аргументах
api.post.edit[post_id](text='Отредактированный текст', background=19)
Результатом выполнения запроса может быть:
- "OK" при изменении данных;
- id сущности при ее создании;
- объект
Dummy
при получении данных.
Работать с Dummy
можно несколькими способами:
obj.text
obj['text']
obj.get('text', 'DEFAULT')
if 'text' in obj: pass
# для проверки наличия значения 'text' в объекте
Для запросов с получением данных используется HTTP метод GET
, а при изменении данных на сервере POST
.
При вызове метода API на основе названия метода и переданных аргументов автоматически выбирается
используемый HTTP метод.
В случае, если метод был выбран неверно, попытка повторится с другим методом,
а в логе будет сообщение Invalid HTTP method...
с корректным методом.
В этом случае, его можно указать при обращении к такому методу:
api.some.method('GET')
# или
api.some.method(_http_method='GET')
При инициализации объекта AuthSession
каждый раз отправляется несколько запросов
на passport.yandex.ru
для авторизации.
Возможно, частые авторизации могут показаться подозрительными и повлечь за собой наложение ограничений на аккаунт.
Данные для использования CookieSession
можно получить, вызвав метод get_cookie_session_args
объекта класса AuthSession
:
session = aura.AuthSession('LOGIN', 'PASSWORD')
cookies = session.get_cookie_session_args()
print(cookies) # сохранить для последующего использования
cookie_session = aura.CookieSession(**cookies)
Настройки содержатся в объекте aura.config.config
и могут быть
изменены напрямую или с помощью aura.configure
до инициализации прочих объектов
aura.config.config.USER_AGENT = 'Mozilla/5.0 ...'
aura.configure(USER_AGENT='Mozilla/5.0 ...', API_DELAY=0)
- USER_AGENT - отправляемый в каждом запросе заголовок, должен соответствовать USER_AGENT мобильного устройства и отвечать некоторым другим условиям
- DEFAULT_APP_VERSION - отправляемая в каждом запросе версия используемого приложения
- HTTP_TIMEOUT - лимит ожидания ответа
- API_DELAY - задержка между повторными запросами
- HTTP_METHOD_CORRECTION - при ошибке Invalid action пробовать с альтернативным HTTP методом, за исключением случаев, когда метод указан вручную
В открытом доступе нет всех доступных методов и их аргументов. Здесь со временем будут появляться основные методы и аргументы с описанием (но особо на это рассчитывать не стоит).
Изучать необходимые вам методы можно выполняя действия и наблюдая за тем, какие HTTP запросы отправляются.
Возможные варианты:
- Заменяя USER AGENT в браузере отслеживать пакеты при работе с аурой во вкладке "Network" инструментов разработчика (F12 на многих браузерах)
- Перенаправляя пакеты с мобильного устройства на ПК используя для их анализа Charles или Fiddler или используя аналогичные инструменты на мобильном устройстве
Так же возможно выудить что-то из main.js (для перехода необходим мобильный USER AGENT)