Загрузка...

Pyanty - Веб-автоматизация, модуль для управления долфином через Selenium, и Dolphin API

Тема в разделе Python создана пользователем Maehdakvan 18 ноя 2023. (поднята 23 июл 2025 в 15:52) 2734 просмотра

  1. Maehdakvan
    Maehdakvan Автор темы 18 ноя 2023 76 14 ноя 2020

    PYANTY - Управляем Dolphin Anty!

    Python библиотека для полного контроля над профилями браузера

    Что это такое?

    pyanty - это мощная Python библиотека для управления профилями браузера Dolphin Anty.

    Она позволяет:
    • Создавать новые профили с уникальными отпечатками
    • Редактировать существующие профили
    • Управлять ******, геолокацией и timezone
    • Автоматизировать браузер через Selenium, Pyppeteer и Playwright
    • Работать с расширениями Chrome
    • Генерировать реалистичные fingerprints через Bablosoft

    ВАЖНОЕ ПРЕДУПРЕЖДЕНИЕ
    Selenium и локальные функции работают только при запущенном Dolphin Anty!

    Убедитесь, что Local API wrapper активен.

    Быстрый старт

    Python

    import random
    import pyanty as dolphin
    from pyanty import DolphinAPI, STABLE_CHROME_VERSION

    # Инициализация API
    api = DolphinAPI(api_key='Your Api Key') # или просто DolphinAPI() для авто-получения токена

    # Генерация отпечатка браузера
    fingerprint = []
    while not fingerprint:
    fingerprint = api.generate_fingerprint(
    platform='windows',
    browser_version=f'{random.randint(136, STABLE_CHROME_VERSION)}'
    )

    # Создание профиля
    data = api.fingerprint_to_profile(name='my superprofile', fingerprint=fingerprint)
    profile_id = api.create_profile(data)['browserProfileId']

    # Запуск профиля и автоматизация
    response = dolphin.run_profile(profile_id)
    port = response['automation']['port']

    driver = dolphin.get_driver(port=port)
    driver.get('https://google.com/')
    print(driver.title)
    driver.quit()

    # Закрытие профиля
    dolphin.close_profile(profile_id)
    Python

    import asyncio
    import pyanty as dolphin
    from pyanty import DolphinAPI

    api = DolphinAPI(api_key='Your Api Key')

    # Создание профиля (аналогично примеру выше)
    # ...

    response = dolphin.run_profile(profile_id)
    port = response['automation']['port']
    ws_endpoint = response['automation']['wsEndpoint']

    async def main():
    browser = await dolphin.get_browser(ws_endpoint, port)
    pages = await browser.pages()
    page = pages[0]
    await page.goto('http://google.com/')
    await asyncio.sleep(5)
    await browser.disconnect()

    asyncio.run(main())
    dolphin.close_profile(profile_id)
    Python

    # Используем core='playwright' или core='patchright' для undetectable версии
    browser = await dolphin.get_browser(ws_endpoint, port, core='playwright')

    Работа с профилями

    Получение списка профилей:

    Python

    from pyanty import DolphinAPI

    api = DolphinAPI() # автоматически подхватит токен из *****

    # Получить все профили
    response = api.get_profiles()

    # С пагинацией
    response = api.get_profiles(page=1, limit=300) # по умолчанию: page=1, limit=50
    Создание нового профиля:

    Python

    # Генерация отпечатка
    fingerprint = api.generate_fingerprint(
    platform='windows', # windows/linux/macos
    screen='1920x1080', # опционально
    browser_version='131' # опционально
    )

    # Конвертация в профиль
    data = api.fingerprint_to_profile(
    name='Мой крутой профиль',
    fingerprint=fingerprint,
    tags=['test', 'pyanty'] # опционально
    )

    # Создание
    response = api.create_profile(data)
    profile_id = response['browserProfileId']
    Редактирование профиля:

    Python

    fingerprint = api.generate_fingerprint(platform='linux')
    data = api.fingerprint_to_profile(name='обновленный профиль', fingerprint=fingerprint)

    response = api.edit_profile(profile_id, data)
    Удаление профилей:

    Python

    # Удаление одного или нескольких профилей
    response = api.delete_profiles([profile_id_1, profile_id_2])
    Дополнительные настройки профиля

    После создания базового профиля можно добавить дополнительные параметры:

    Python

    data.update({
    'geolocation': {
    'mode': 'manual',
    'latitude': 55.7558,
    'longitude': 37.6173,
    'accuracy': 100
    }
    })
    Python

    data.update({
    'timezone': {
    'mode': 'manual',
    'value': 'Europe/Moscow'
    }
    })
    Python

    data.update({
    'locale': {
    'mode': 'manual',
    'value': 'ru_RU'
    }
    })
    [CODE=python]
    data.update({
    'proxy': {
    'name': 'http://37.19.220.129:8443',
    'host': '37.19.220.129',
    'port': '8443',
    'type': 'http', # http/https/socks5
    'login': 'username', # опционально
    'password': 'password' # опционально
    }
    })
    [/CODE]

    Продвинутые возможности

    Bablosoft Fingerprints (NEW!)

    Начиная с версии 1.1.0, библиотека поддерживает генерацию реалистичных отпечатков через сервис Bablosoft:

    [CODE=python]
    # Генерация с тегами
    fingerprint = []
    while not 'ua' in fingerprint:
    fingerprint = api.generate_fb_fingerprint(tags=['Apple Mac'])

    # Доступные теги:
    # Платформы: Desktop, Mobile
    # ОС: Microsoft Windows, Apple Mac, Android, Linux, iPad, iPhone
    # Браузеры: Edge, Chrome, Safari, Firefox, IE

    # Комбинации тегов
    fingerprint = api.generate_fb_fingerprint(tags=['Desktop', 'Microsoft Windows', 'Chrome'])
    fingerprint = api.generate_fb_fingerprint(tags=['Mobile', 'Android', 'Chrome'])
    [/CODE] Проверить fingerprint:https://fp.bablosoft.com/#testing

    Работа с расширениями

    [CODE=python]
    # Получить список расширений
    extensions = api.get_extensions(page=1, limit=50)

    # Загрузить из Chrome Web Store
    response = api.load_extension_from_url(
    'https://chromewebstore.google.com/detail/ublock-origin/cjpalhdlnbpafiamejdnhcphjbkeiagm'
    )

    # Загрузить из ZIP архива
    response = api.load_extension_from_zip(
    extension_name='My Extension',
    path='path/to/extension.zip'
    )

    # Удалить расширения
    api.delete_extensions([extension_id_1, extension_id_2])
    [/CODE] Дополнительные утилиты

    [CODE=python]
    response = api.check_proxy(
    host='37.19.220.129',
    port='8443',
    type='http',
    login='username', # опционально
    password='password' # опционально
    )

    # Результат:
    # {"success": true, "country": "RU", "region": "Moscow", "city": "Moscow",
    # "ip": "37.19.220.178", "timezone": "Europe/Moscow"}
    [/CODE]
    [CODE=python]
    response = api.generate_mac()

    # Результат:
    # {"success": true, "macAddress": "8E:DD:48:08:F1:31"}
    [/CODE]

    Полезные ссылки

     
    18 ноя 2023 Изменено
  2. ChatGPT
    ChatGPT 18 ноя 2023 2250 14 мар 2023
    Maehdakvan Привет! Очень интересная библиотека, которую ты разработал! Selenium-Dolphin выглядит очень полезной для управления профилями Dolphin Anty через Selenium и Dolphin API в Python. Я уверен, что она будет полезна для автоматизации тестирования и веб-скрапинга. Спасибо за то, что поделился этим с сообществом! Если у пользователей возникнут вопросы или комментарии, я готов помочь.
     
  3. sunshine
    sunshine 18 ноя 2023 Сначала мы жили бедно, а потом нас обокрали...
    будет полезно, спасибо
     
  4. GooseG4G
    GooseG4G 18 ноя 2023 97 14 янв 2018
    Так это же в документации api все тоже самое написано и даже больше
    --- Сообщение объединено с предыдущим 18 ноя 2023
    Вместо долфина + селениум пришел к варианту использования selenium_wire + selenium_stealth + некоторые параметры и js, чтоб детект селениума обходить. Но если что-то черное надо автоматизировать, то лучше все же через дельфина, главное чтоб не через черного дельфина
     
    1. Maehdakvan Автор темы
      GooseG4G, Там такой прикол, что в документации и прочем всё это есть, а вот так чтоб собрать в одну либу где бах-бах и работает я не нашёл, просто решил сделать поменьше рутины для себя, ну и собственно поскольку мне не жалко поделился с другими
  5. REDKLAUS
    REDKLAUS 18 ноя 2023 Заблокирован(а)
    Полезно, молодец
     
    1. Maehdakvan Автор темы
      REDKLAUS, тенько вери мач
  6. Skidd3r
    Skidd3r 20 ноя 2023 0 1 апр 2020
  7. Liagushka
    Liagushka 15 дек 2023 100 25 окт 2022
  8. EveSeller
    EveSeller 19 дек 2023 2 11 сен 2021
    Они там что переписали документацию к API?
    Около года назад писал софт на связке селениум+долфин, так там документация была на столько кривая что я заебывал саппорт прям по каждому вопросу связанному с апи
     
    1. Maehdakvan Автор темы
      EveSeller, не знаю переписали или нет, но я разобрался во всём сам
  9. Харизма
    Харизма 29 дек 2023 Заблокирован(а) 864 13 янв 2018
    Спасибо, напиши документацию по ней, будет удобно )
     
  10. IntConnection
    IntConnection 15 июн 2024 Заблокирован(а) 124 15 июн 2024
    хорошее дополнение к селениуму)
     
  11. МеганФокс
    Есть более тяжелый но можно юзать, покупаем в рабство человека (можем украсть программиста и держать в подвале) , дальше заставляем его за еду работать и он сам вручную чекает ******.
    Q: Как увеличить скорость пиоверки?
    A: Все зависит от того как ему угрожают, становишься рядом с ним с дубинкой, 3 ****** в секунду, с травматом у головы 12 ****** в секунуд, в общем можете юзать.
     
Загрузка...
Top