aura-api
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 запроса
Для запросов с получением данных используется HTTP метод GET, а при изменении данных на сервере POST.
В случае, если метод был выбран неверно, попытка повторится с другим методом,
а в логе будет сообщение 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)
Metadata
Release files for aura-api 1.0.4
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | Provenance | |
|---|---|---|---|---|
| aura-api-1.0.4.tar.gz | 7.5 kB | Without provenance | Details |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| aura_api-1.0.4-py3-none-any.whl | Python 3 | none | any | Details |
Total release size: 28.9 kB
Release files / aura-api-1.0.4.tar.gz
| Download URL | aura-api-1.0.4.tar.gz |
|---|---|
| Size | 7.5 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
7bd0ae1df13a5d291d466e8ac21813a17a6c63a331eca2a86801403ab1f45218
|
|
BLAKE2b-256 checksum How to use checksums |
4abf4030b64c64389d0fce649cb0c406ea47ca722ed2108f2f775301f36e04a3
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/1.13.0 pkginfo/1.5.0.1 requests/2.20.0 setuptools/40.8.0 requests-toolbelt/0.9.1 tqdm/4.28.1 CPython/3.7.2
|
Release files / aura_api-1.0.4-py3-none-any.whl
| Download URL | aura_api-1.0.4-py3-none-any.whl |
|---|---|
| Size | 21.4 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
66f636985dd8b8cda1a7441ab423caa503beda3408de864a1cdec1884f60848b
|
|
BLAKE2b-256 checksum How to use checksums |
106763f379141579b51aeb2b90d213f5b6ab4306b9acb3cd5217acdff591c755
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/1.13.0 pkginfo/1.5.0.1 requests/2.20.0 setuptools/40.8.0 requests-toolbelt/0.9.1 tqdm/4.28.1 CPython/3.7.2
|
Security for aura-api 1.0.4
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
No provenance found
None of the files in this release were uploaded with provenance metadata.
A note on package security
PyPI is a repository for distributing packages, not a service for auditing them. While third-party security researchers and our staff do their best to detect and remove malicious packages, PyPI cannot guarantee the quality, security or suitability of any given package.
To learn more about protecting yourself from malicious actors, visit our package security documentation.