• XSS.stack #1 – первый литературный журнал от юзеров форума

Мануал/Книга Автоматизация любых задач в ADS Power [Бесплатные шаблоны + Отвечу на Ваши вопросы + Опыт использования]

Symfony

WEB STUDIO
КИДАЛА
Регистрация
15.03.2024
Сообщения
76
Реакции
30
Гарант сделки
3
Пожалуйста, обратите внимание, что пользователь заблокирован
🇷🇺 Приветствую всех! 🙌
Эта тема посвящена автоматизации любых задач в ADS Power. Если вы хотите освоить инструменты автоматизации, научиться экономить время, избегать типичных ошибок и монетизировать свои навыки — добро пожаловать! 🎉

Что вы найдете в этой теме?
  • Бесплатные шаблоны для автоматизации (сразу готовые к применению) 📋
  • Подробные инструкции по их настройке и использованию 📖
  • Советы по оптимизации задач и решению возможных проблем💡
  • Рекомендации по монетизации через автоматизацию в ADS Power 💵
  • Ответы на любые ваши вопросы: задавайте, и я постараюсь помочь каждому! 🤝
Цель темы — создать пространство, где вы сможете развиваться, получать полезные инструменты и делиться своими успехами! 🚀


🇺🇸 Welcome everyone! 🙌
This thread is dedicated to automating any tasks in ADS Power. If you want to master automation tools, save time, avoid common mistakes, and monetize your skills — you’ve come to the right place! 🎉

What will you find in this thread?
  • Free templates for automation (ready to use right away) 📋
  • Detailed instructions on setup and usage 📖
  • Tips on optimizing tasks and solving potential issues 💡
  • Recommendations for monetizing automation with ADS Power 💵
  • Answers to all your questions: ask, and I’ll do my best to help everyone! 🤝
The goal of this thread is to create a space where you can grow, gain valuable tools, and share your achievements! 🚀


🇷🇺 Какие задачи можно автоматизировать? 🚀
  • Массовая регистрация аккаунтов 🔄
  • Автоматизация вбивов CC + 3DS 💳
  • Публикация контента на множестве аккаунтов 📤
  • Парсинг данных с маркетплейсов и других платформ 🛒
  • Управление и настройка рекламных кабинетов 📈
  • Массовая рассылка сообщений, с анализом контекста и генерацией ответов через Open AI 🤖

🇺🇸 What tasks can be automated? 🚀
  • Bulk account registration 🔄
  • CC + 3DS beat automation 💳
  • Content posting on multiple accounts 📤
  • Data scraping from marketplaces and other platforms 🛒
  • Ad account management and setup 📈
  • Bulk messaging, with context analysis and response generation via Open AI🤖

Гайд по настройке обхода капчи в RPA
Python-скрипт для массового создания профилей с использованием списка IP из файла
Guide to Setting Up CAPTCHA Bypass in RPA
Python script for mass profile creation using an IP list from a file

Шаблон для нагуливания Cookies 🍪 и *скликивания конкурентов в Google Ads 💻
Template for Farming Cookies 🍪 and *Clicking Competitors in Google Ads 💻


🇷🇺 Планирую регулярно обновлять эту тему, делиться новыми наработками и рассказывать о тонкостях работы в ADS Power. Буду рад обратной связи и вашим предложениям.
🇺🇸 I plan to update this topic regularly, share new developments and talk about the subtleties of working in ADS Power. I will be glad to receive feedback and your suggestions.
 
Последнее редактирование:
Пожалуйста, обратите внимание, что пользователь заблокирован
🇷🇺Гайд по настройке обхода капчи в RPA

Перед тем как публиковать шаблоны, начнем с важной настройки, которая помогает решать проблему обхода капчи. В RPA предусмотрен функционал для работы с капчами: reCAPTCHA V2, V3, hCaptcha и Cloudflare Turnstile.

Как это работает?

Примерный сценарий:

JSON:
[
  {
    "type": "getCaptcha",
    "config": {
      "apiKey": "ВАШ API КЛЮЧ",
      "type": "reCaptchaV2",
      "variable": "captcha",
      "minScore": 0.9,
      "remark": "Вводим капчу в случае успеха возвращаем TRUE"
    }
  },
  {
    "type": "ifElse",
    "config": {
      "condition": [
        "captcha"
      ],
      "relation": "exist",
      "result": "",
      "hiddenChildren": false,
      "children": [
        {
          "type": "newPage",
          "config": {}
        }
      ],
      "remark": "Если капча введена выполняем дальнейшие действия"
    }
  }
]

Этот подход подходит, если мы заранее знаем, что на определенном этапе потребуется ввод капчи. Однако бывают случаи, когда запрос капчи может появляться на любой странице. Проверять это после каждого обновления или открытия страницы неэффективно.
Например, если вы выполняете серфинг по нескольким сайтам, где может быть проверка не только от Google но и например Cloudflare, такой подход неудобен.

💡 Решение: использование расширения Capsolver

⚙️ Шаги настройки:

  1. Установите расширение Capsolver в обычный браузер Chrome.
  2. Зарегистрируйтесь на Capsolver и получите API-ключ.
  3. Найдите папку с установленным расширением Capsolver.

💻 Для Windows:

Папка с расширениями находится по адресу:
Код:
C:\Users\<Ваше_имя_пользователя>\AppData\Local\Google\Chrome\User Data\Default\Extensions

В моем случае папка с расширением называется 1.15.1_0.

  1. Откройте папку с расширением, затем папку assets. В текстовом редакторе откройте файл config.js.
  2. В самом начале файла укажите ваш API-ключ в параметре apiKey и сохраните изменя
Пример:
JavaScript:
export const defaultConfig = {
  // API key
  apiKey: 'CAP-258C7818404A2042535444EDAF0F0F37'
}

❗️ Зачем это нужно?

Если ключ задать в конфигурационном файле, расширение автоматически установится во все браузерные профили. В противном случае ключ придется вводить вручную для каждого профиля.

  1. Создайте архив с папкой расширения.
  2. Откройте Ads Power:
    • Перейдите в раздел "Расширения" и загрузите созданный архив.
    • Затем в разделе "Профили" выберите профили, куда нужно установить расширение.
    • Нажмите на кнопку с тремя точками, выберите "Профиль" → "Расширения" и активируйте опцию "Использовать расширения команды".

Настройка завершена! 🔥

Теперь ваше расширение Capsolver готово к работе профилях. 🚀
 
Последнее редактирование:
Пожалуйста, обратите внимание, что пользователь заблокирован
🇺🇸Guide to Setting Up CAPTCHA Bypass in RPA

Before publishing templates, let's start with an essential configuration that helps solve the CAPTCHA bypass problem. RPA provides functionality for working with CAPTCHAs, including reCAPTCHA V2, V3, hCaptcha, and Cloudflare Turnstile.

How Does It Work?

Example scenario:

JSON:
[
  {
    "type": "getCaptcha",
    "config": {
      "apiKey": "ВАШ API КЛЮЧ",
      "type": "reCaptchaV2",
      "variable": "captcha",
      "minScore": 0.9,
      "remark": "Вводим капчу в случае успеха возвращаем TRUE"
    }
  },
  {
    "type": "ifElse",
    "config": {
      "condition": [
        "captcha"
      ],
      "relation": "exist",
      "result": "",
      "hiddenChildren": false,
      "children": [
        {
          "type": "newPage",
          "config": {}
        }
      ],
      "remark": "Если капча введена выполняем дальнейшие действия"
    }
  }
]

This approach works if we know in advance that CAPTCHA input is required at a specific step. However, there are cases when CAPTCHA requests can appear on any page. Checking for this after every update or page load is inefficient.
For instance, if you're surfing multiple websites that might include checks not only from Google but also from Cloudflare, this method is inconvenient.

💡 Solution: Using the Capsolver Extension

⚙️ Setup Steps:

  1. Install the Capsolver extension in a regular Chrome browser.
  2. Sign up for Capsolver and obtain an API key.
  3. Locate the folder where the Capsolver extension is installed.

💻 For Windows:

The extensions folder is located at:
Код:
C:\Users\<Your_Username>\AppData\Local\Google\Chrome\User Data\Default\Extensions

In my case, the extension folder is named 1.15.1_0.

  1. Open the extension folder, then the assets folder. Use a text editor to open the config.js file.
  2. At the beginning of the file, enter your API key in the apiKey parameter and save the changes.
Example:
JavaScript:
export const defaultConfig = {
  // API key
  apiKey: 'CAP-258C7818404A2042535444EDAF0F0F37'
}

❗️ Why Is This Necessary?

By specifying the key in the configuration file, the extension will automatically apply to all browser profiles. Otherwise, you'll need to manually enter the key for each profile.

  1. Create an archive with the extension folder.
  2. Open Ads Power:
    • Go to the "Extensions" section and upload the created archive.
    • Then, in the "Profiles" section, select the profiles where the extension needs to be installed.
    • Click the three-dot button, choose "Profile" → "Extensions", and enable the "Use Command Extensions" option.

Setup Complete! 🔥

Your Capsolver extension is now ready to work in profiles. 🚀
 
Пожалуйста, обратите внимание, что пользователь заблокирован
🇷🇺 Шаблон для нагуливания Cookies 🍪 и *скликивания конкурентов в Google Ads 💻

Данный шаблон служит для *скликивания конкурентов в контекстной рекламе.
Однако функционал для *скликивания был удален из этических соображений. Если вы все же захотите использовать шаблон для этого, необходимо добавить три процесса:
  1. Поиск сайта конкурента. 🔍
  2. Клик по рекламному объявлению 🖱️
  3. Задержка на сайте

Какие действия выполняет данный шаблон? Список процессов:
  1. Открывает сайт Google.com. 🔍
  2. Вводит случайный запрос в строку поиска. ⌨️
  3. Просматривает результаты поиска. 👀
  4. Эмулирует действия мышки. 🖱️
  5. Переходит на сайты из результатов поиска. 🌐
  6. Изучает содержимое посещенных сайтов. 📄
  7. Ищет внутренние ссылки и переходит по ним. 🔗
  8. Заходит на YouTube.com, вводит случайные запросы в поиске. ▶️
  9. Просматривает видеоролики. 🎥
 

Вложения

  • Google + YouTube .txt
    29.3 КБ · Просмотры: 60
Последнее редактирование:
Пожалуйста, обратите внимание, что пользователь заблокирован
🇺🇸 Template for Farming Cookies 🍪 and *Clicking Competitors in Google Ads 💻

This template is designed for clicking competitors in contextual advertising.
However, the functionality for clicking was removed for ethical reasons. If you still want to use the template for this purpose, you need to add three processes:
  1. Finding the competitor's website. 🔍
  2. Clicking on the ad. 🖱️
  3. Staying on the site for some time.

What actions does this template perform? Process list:
  1. Opens the Google.com website. 🔍
  2. Enters a random query in the search bar. ⌨️
  3. Views search results. 👀
  4. Simulates mouse movements. 🖱️
  5. Navigates to websites from the search results. 🌐
  6. Explores the content of visited sites. 📄
  7. Looks for internal links and follows them. 🔗
  8. Visits YouTube.com, enters random search queries. ▶️
  9. Watches videos. 🎥
 

Вложения

  • Google + YouTube .txt
    29.3 КБ · Просмотры: 43
Последнее редактирование:
Пожалуйста, обратите внимание, что пользователь заблокирован
🇷🇺 Python-скрипт для массового создания профилей с использованием списка IP из файла
Функционал ADS Power для массового создания профилей с собственным списком IP крайне неудобен.

Почему?

  1. Нельзя задать имена профилей с автонумерацией, например: Google 1, Google 2 и т.д.
  2. Нельзя назначить каждому профилю уникальный прокси.

💡 Решение — написать Python-скрипт который будет создавать профили с нужными настройками.

💻 Настройка на Windows

1. Установите Python
Скачайте Python с официального сайта и установите.
⚠️ Во время установки обязательно поставьте галочку на "Add Python to PATH".

2. Проверьте установку и настройте окружение

  • Откройте командную строку: Win + R → введите cmd.
  • Проверьте версию Python:
    Bash:
    python --version
    Если Python установлен, вы увидите номер версии.
  • Установите библиотеку requests:
    Bash:
    pip install requests
3. Сохраните скрипт
  • Откройте любой текстовый редактор: Notepad или VS Code.
  • Вставьте код скрипта и сохраните его с расширением .py, например: create-profile.py.
    ⚠️ Убедитесь, что файл сохранён в кодировке UTF-8.
  • Измените в коде:
    • Названия профилей и начальное число:
      Python:
      profile_name = f"Google {200 + i}"  # Имена начинаются с Google 200
4. Подготовьте список прокси
  • Создайте файл proxy.txt в той же папке, где находится скрипт.
  • Формат записи:
    port:server:login:password
    • Если используете другой тип прокси (например, HTTP вместо SOCKS5), измените в коде:
      Python:
      "proxy_type": "socks5",  # Измените на "http", если нужен HTTP-прокси
5. Настройте AdsPower API
  • Убедитесь, что AdsPower API запущен локально (по умолчанию: http://localhost:50325).
  • Проверьте доступность API:
6. Запустите скрипт
  • Перейдите в папку, где находится скрипт:
    Bash:
    cd путь_к_папке_со_скриптом
  • Запустите скрипт:
    Bash:
    python create-profile.py


Python:
import time
import requests
import random

# Конфигурация API
API_URL = "http://localhost:50325/api/v1/user/create"
HEADERS = {
    'Content-Type': 'application/json'
}

# Список популярных User-Agent
USER_AGENTS = [
    "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/131.0.6778.70 Safari/537.36",
    "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/129.0.6668.71 Safari/537.36",
    "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/132.0.6888.80 Safari/537.36",
    "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/128.0.6000.50 Safari/537.36",
    "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/131.0.6778.80 Safari/537.36",
    "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/130.0.6777.73 Safari/537.36",
    "Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/131.0.6778.70 Safari/537.36",
    "Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:102.0) Gecko/20100101 Firefox/102.0",
    "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/129.0.6668.71 Safari/537.36",
    "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/133.0.7000.90 Safari/537.36"
]

# Функция для загрузки прокси из файла
def load_proxies(file_path):
    with open(file_path, 'r', encoding='utf-8-sig') as file:  # encoding='utf-8-sig' удаляет BOM
        proxies = [line.strip() for line in file if line.strip()]
    return proxies

# Функция для парсинга прокси
def parse_proxy(proxy_line):
    try:
        server, port, username, password = proxy_line.split(':')

        return {
            "proxy_type": "socks5",  # Или "http", если используется HTTP-прокси
            "proxy_host": server,
            "proxy_port": int(port),
            "proxy_user": username,
            "proxy_password": password,
            "proxy_soft": "other"  # Или "luminati", если используется эта платформа
        }
    except ValueError:
        print(f"Ошибка в формате прокси: {proxy_line}")
        return None

# Функция для создания профиля
def create_profile(profile_name, proxy_config):
    # Выбор случайного User-Agent
    random_user_agent = random.choice(USER_AGENTS)

    payload = {
        "name": profile_name,
        "group_id": "0",
        "domain_name": "accounts.google.com",
        "repeat_config": ["0"],
        "country": "id",
        "fingerprint_config": {
            "browser_kernel_config": {
                "type": "chrome",
                "version": random_user_agent.split('Chrome/')[1].split('.')[0]  # Извлекаем версию Chrome из User-Agent
            },
            "ua": random_user_agent,
            "automatic_timezone": "1",
            "webrtc": "disabled",
            "location": "ask",
            "location_switch": "1",
            "language_switch": "1",
            "page_language_switch": "1",
            "screen_resolution": "none",
            "fonts": ["all"],
            "canvas": "0",
            "webgl_image": "0",
            "audio": "1",
            "media_devices": "1",
            "client_rects": "1",
            "speech_switch": "1",
            "webgl": "2",
            "webgl_config": {
                "unmasked_vendor": "Google Inc.",
                "unmasked_renderer": "ANGLE (NVIDIA, NVIDIA GeForce GTX 1650 Direct3D9Ex vs_3_0 ps_3_0)"
            },
            "webgpu": {
                "webgpu_switch": "1"
            },
            "hardware_concurrency": "16",
            "device_memory": "8",
            "device_name_switch": "1",
            "device_name": "DESKTOP-QKN34WA",
            "mac_address_config": {
                "model": "2",
                "address": "E0-94-67-A1-62-9E"
            },
            "do_not_track": "default",
            "scan_port_type": "1",
            "gpu": "0"
        },
        "user_proxy_config": proxy_config  # Прокси конфигурация
    }

    print(f"\nОтправляемый User-Agent для {profile_name}: {random_user_agent}")  # Отладка

    try:
        response = requests.post(API_URL, headers=HEADERS, json=payload)
        print(f"Ответ API для {profile_name}: {response.json()}")  # Отладка ответа
        return response.json()
    except requests.RequestException as e:
        print(f"Ошибка при создании профиля {profile_name}: {e}")
        return None

# Основной процесс
def main():
    proxy_file = "proxy.txt"  # Укажите путь к вашему proxy.txt
    proxies = load_proxies(proxy_file)

    if not proxies:
        print("Файл proxy.txt пуст или отсутствует корректный список прокси.")
        return

    for i, proxy_line in enumerate(proxies):
        proxy_config = parse_proxy(proxy_line)
        if proxy_config is None:
            continue

        profile_name = f"Google {200 + i}"  # Имена начинаются с Google 200
        result = create_profile(profile_name, proxy_config)

        if result and result.get("code") == 0:  # Успешное создание профиля
            print(f"Профиль {profile_name} успешно создан: {result}")
        else:
            print(f"Не удалось создать профиль {profile_name}. Ответ API: {result}")

        # Добавляем паузу в 10 секунд между запросами
        time.sleep(10)

# Запуск скрипта
if __name__ == "__main__":
    main()
 
Последнее редактирование:
Пожалуйста, обратите внимание, что пользователь заблокирован
🇺🇸 Python script for mass profile creation using an IP list from a file
The ADS Power functionality for mass profile creation with a custom IP list is highly inconvenient.

Why?

  1. You cannot assign profile names with auto-numbering, e.g., Google 1, Google 2, etc.
  2. You cannot assign a unique proxy to each profile.

💡 Solution — write a Python script to create profiles with the required settings.

💻 Setup on Windows

1. Install Python
Download Python from the official website and install it.
⚠️ During installation, be sure to check the "Add Python to PATH" option.

2. Verify installation and set up the environment

  • Open the command prompt: Win + R → type cmd.
  • Check the Python version:
    Bash:
    python --version
    If Python is installed, you will see the version number.
  • Install the requests library:
    Bash:
    pip install requests

3. Save the script
  • Open any text editor: Notepad or VS Code.
  • Paste the script code and save it with a .py extension, e.g., create-profile.py.
    ⚠️ Ensure the file is saved in UTF-8 encoding.
  • Edit the code:
    • Change the profile names and starting number:
      Python:
      profile_name = f"Google {200 + i}" # Names start with Google 200

4. Prepare the proxy list
  • Create a file proxy.txt in the same folder as the script.
    File format:
    port:server:login:password
  • If you use a different proxy type (e.g., HTTP instead of SOCKS5), modify the code:
    Python:
    "proxy_type": "socks5", # Change to "http" if using HTTP proxy

5. Set up AdsPower API

6. Run the script

  • Navigate to the folder where the script is located:
    Bash:
    cd path_to_script_folder
  • Run the script:
    Bash:
    python create-profile.py


Python:
import time
import requests
import random

# Конфигурация API
API_URL = "http://localhost:50325/api/v1/user/create"
HEADERS = {
    'Content-Type': 'application/json'
}

# Список популярных User-Agent
USER_AGENTS = [
    "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/131.0.6778.70 Safari/537.36",
    "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/129.0.6668.71 Safari/537.36",
    "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/132.0.6888.80 Safari/537.36",
    "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/128.0.6000.50 Safari/537.36",
    "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/131.0.6778.80 Safari/537.36",
    "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/130.0.6777.73 Safari/537.36",
    "Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/131.0.6778.70 Safari/537.36",
    "Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:102.0) Gecko/20100101 Firefox/102.0",
    "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/129.0.6668.71 Safari/537.36",
    "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/133.0.7000.90 Safari/537.36"
]

# Функция для загрузки прокси из файла
def load_proxies(file_path):
    with open(file_path, 'r', encoding='utf-8-sig') as file:  # encoding='utf-8-sig' удаляет BOM
        proxies = [line.strip() for line in file if line.strip()]
    return proxies

# Функция для парсинга прокси
def parse_proxy(proxy_line):
    try:
        server, port, username, password = proxy_line.split(':')

        return {
            "proxy_type": "socks5",  # Или "http", если используется HTTP-прокси
            "proxy_host": server,
            "proxy_port": int(port),
            "proxy_user": username,
            "proxy_password": password,
            "proxy_soft": "other"  # Или "luminati", если используется эта платформа
        }
    except ValueError:
        print(f"Ошибка в формате прокси: {proxy_line}")
        return None

# Функция для создания профиля
def create_profile(profile_name, proxy_config):
    # Выбор случайного User-Agent
    random_user_agent = random.choice(USER_AGENTS)

    payload = {
        "name": profile_name,
        "group_id": "0",
        "domain_name": "accounts.google.com",
        "repeat_config": ["0"],
        "country": "id",
        "fingerprint_config": {
            "browser_kernel_config": {
                "type": "chrome",
                "version": random_user_agent.split('Chrome/')[1].split('.')[0]  # Извлекаем версию Chrome из User-Agent
            },
            "ua": random_user_agent,
            "automatic_timezone": "1",
            "webrtc": "disabled",
            "location": "ask",
            "location_switch": "1",
            "language_switch": "1",
            "page_language_switch": "1",
            "screen_resolution": "none",
            "fonts": ["all"],
            "canvas": "0",
            "webgl_image": "0",
            "audio": "1",
            "media_devices": "1",
            "client_rects": "1",
            "speech_switch": "1",
            "webgl": "2",
            "webgl_config": {
                "unmasked_vendor": "Google Inc.",
                "unmasked_renderer": "ANGLE (NVIDIA, NVIDIA GeForce GTX 1650 Direct3D9Ex vs_3_0 ps_3_0)"
            },
            "webgpu": {
                "webgpu_switch": "1"
            },
            "hardware_concurrency": "16",
            "device_memory": "8",
            "device_name_switch": "1",
            "device_name": "DESKTOP-QKN34WA",
            "mac_address_config": {
                "model": "2",
                "address": "E0-94-67-A1-62-9E"
            },
            "do_not_track": "default",
            "scan_port_type": "1",
            "gpu": "0"
        },
        "user_proxy_config": proxy_config  # Прокси конфигурация
    }

    print(f"\nОтправляемый User-Agent для {profile_name}: {random_user_agent}")  # Отладка

    try:
        response = requests.post(API_URL, headers=HEADERS, json=payload)
        print(f"Ответ API для {profile_name}: {response.json()}")  # Отладка ответа
        return response.json()
    except requests.RequestException as e:
        print(f"Ошибка при создании профиля {profile_name}: {e}")
        return None

# Основной процесс
def main():
    proxy_file = "proxy.txt"  # Укажите путь к вашему proxy.txt
    proxies = load_proxies(proxy_file)

    if not proxies:
        print("Файл proxy.txt пуст или отсутствует корректный список прокси.")
        return

    for i, proxy_line in enumerate(proxies):
        proxy_config = parse_proxy(proxy_line)
        if proxy_config is None:
            continue

        profile_name = f"Google {200 + i}"  # Имена начинаются с Google 200
        result = create_profile(profile_name, proxy_config)

        if result and result.get("code") == 0:  # Успешное создание профиля
            print(f"Профиль {profile_name} успешно создан: {result}")
        else:
            print(f"Не удалось создать профиль {profile_name}. Ответ API: {result}")

        # Добавляем паузу в 10 секунд между запросами
        time.sleep(10)

# Запуск скрипта
if __name__ == "__main__":
    main()
 
Пожалуйста, обратите внимание, что пользователь заблокирован
Пожалуйста, обратите внимание, что пользователь заблокирован
Обновил "Python-скрипт для массового создания профилей с использованием списка IP из файла"
Какие внес изменения?
1. Сделал чтобы при создании профиля удалялся использованный прокси сервер
2. Обновил список User Agent


Updated “Python script for mass profile creation using IP list from a file”
What changes have I made?

1. Made it so that when creating a profile the used proxy server will be deleted
2. updated User Agent list
 

Вложения

  • create-profile.txt
    5.6 КБ · Просмотры: 36
Последнее редактирование:
Пожалуйста, обратите внимание, что пользователь заблокирован
🇷🇺 Простой шаблон для накрутки просмотров, комментариев, лайков на ютубе.
Комментарии геннерируются через нейросеть Open AI
На скрине результат выполнения

🇺🇸 Simple template for scoring views, comments, likes on YouTube.
Comments are gennerized through Open AI neural network
On the screen the result of execution

Снимок.PNG


JSON:
[
  {
    "type": "gotoUrl",
    "config": {
      "url": "https://www.youtube.com/",
      "timeout": 30000,
      "remark": "Переход на YouTube"
    }
  },
  {
    "type": "getOpenAI",
    "config": {
      "apiKey": "ВАШ API КЛЮЧ",
      "outputType": "Text",
      "type": "gpt-4o-mini",
      "variable": "comment",
      "prompt": "Нужно написать короткий положительный комментарий под видео на ютубе. Тема видео: Автоматизация создания профилей в AdsPower с помощью Python-скрипта ",
      "size": "1024x1024",
      "quality": "standard",
      "picFormat": "url",
      "remark": ""
    }
  },
  {
    "type": "waitTime",
    "config": {
      "timeoutType": "randomInterval",
      "timeoutMin": 5000,
      "timeoutMax": 10000,
      "remark": "Ожидание загрузки страницы"
    }
  },
  {
    "type": "waitForSelector",
    "config": {
      "selectorRadio": "CSS",
      "selector": "input.ytSearchboxComponentInput.yt-searchbox-input.title",
      "serial": 1,
      "isShow": "1",
      "timeout": 30000,
      "variable": "",
      "remark": ""
    }
  },
  {
    "type": "javaScript",
    "config": {
      "params": [],
      "content": "function simulateMouseMovement(duration) {\n    const steps = 50; // Количество шагов\n    const interval = duration / steps; // Интервал между шагами в миллисекундах\n\n    let currentStep = 0;\n\n    // Случайная начальная позиция\n    let startX = Math.random() * window.innerWidth;\n    let startY = Math.random() * window.innerHeight;\n\n    // Случайная конечная позиция\n    let endX = Math.random() * window.innerWidth;\n    let endY = Math.random() * window.innerHeight;\n\n    let stepX = (endX - startX) / steps;\n    let stepY = (endY - startY) / steps;\n\n    let mouseMoveInterval = setInterval(() => {\n        currentStep++;\n        let newX = startX + stepX * currentStep;\n        let newY = startY + stepY * currentStep;\n\n        // Создаем событие мыши\n        let mouseEvent = new MouseEvent(\"mousemove\", {\n            clientX: newX,\n            clientY: newY,\n            bubbles: true,\n            cancelable: true,\n        });\n        document.dispatchEvent(mouseEvent);\n\n        // Если дошли до последнего шага, останавливаем\n        if (currentStep >= steps) {\n            clearInterval(mouseMoveInterval);\n\n            // Устанавливаем новую цель для следующего движения\n            setTimeout(() => simulateMouseMovement(duration), 1000 + Math.random() * 2000);\n        }\n    }, interval);\n}\n\n// Запуск эмуляции с заданной длительностью одного движения (например, 2 секунды)\nsimulateMouseMovement(2000);",
      "variable": "",
      "remark": "Эмуляция мышью"
    }
  },
  {
    "type": "waitTime",
    "config": {
      "timeoutType": "randomInterval",
      "timeout": 30000,
      "timeoutMin": 5000,
      "timeoutMax": 10000,
      "remark": "Ожидание перед завершением",
      "_copyItemIndex": "0_8",
      "_copyItemType": ""
    }
  },
  {
    "type": "passingElement",
    "config": {
      "selectorRadio": "CSS",
      "selector": "input.ytSearchboxComponentInput.yt-searchbox-input.title",
      "selectorType": "selector",
      "element": "",
      "serialType": "fixedValue",
      "serial": 1,
      "serialMin": 1,
      "serialMax": 50,
      "remark": "Выбор поля поиска",
      "_copyItemIndex": "0_4",
      "_copyItemType": ""
    }
  },
  {
    "type": "click",
    "config": {
      "selectorRadio": "CSS",
      "selector": "input.ytSearchboxComponentInput.yt-searchbox-input.title",
      "selectorType": "selector",
      "element": "",
      "serialType": "fixedValue",
      "serial": 1,
      "serialMin": 1,
      "serialMax": 50,
      "button": "left",
      "type": "click",
      "remark": "Клик на поле поиска",
      "_copyItemIndex": "0_5",
      "_copyItemType": ""
    }
  },
  {
    "type": "inputContent",
    "config": {
      "selectorRadio": "CSS",
      "selector": "input.ytSearchboxComponentInput.yt-searchbox-input.title",
      "serialType": "fixedValue",
      "selectorType": "selector",
      "element": "",
      "serial": 1,
      "serialMin": 1,
      "serialMax": 50,
      "intervals": 200,
      "content": "Автоматизация создания профилей в AdsPower",
      "isRandom": "1",
      "randomContent": "Автоматизация создания профилей в AdsPower\r\nАвтоматизация создания профилей python",
      "randomInputNum": {
        "min": 0.1,
        "max": 10
      },
      "remark": "Ввод текста в поле поиска",
      "_copyItemIndex": "0_14",
      "_copyItemType": ""
    }
  },
  {
    "type": "keyboard",
    "config": {
      "type": "Enter",
      "remark": ""
    }
  },
  {
    "type": "waitTime",
    "config": {
      "timeoutType": "randomInterval",
      "timeout": 30000,
      "timeoutMin": 5000,
      "timeoutMax": 10000,
      "remark": "Ожидание перед завершением",
      "_copyItemIndex": "0_10",
      "_copyItemType": ""
    }
  },
  {
    "type": "passingElement",
    "config": {
      "selectorRadio": "CSS",
      "selector": "a#video-title",
      "selectorType": "selector",
      "element": "",
      "serialType": "fixedValue",
      "serial": 1,
      "serialMin": 1,
      "serialMax": 50,
      "remark": "Выбор случайного заголовка видео"
    }
  },
  {
    "type": "click",
    "config": {
      "selectorRadio": "CSS",
      "selector": "a#video-title",
      "selectorType": "selector",
      "element": "",
      "serialType": "fixedValue",
      "serial": 1,
      "serialMin": 1,
      "serialMax": 50,
      "button": "left",
      "type": "click",
      "remark": ""
    }
  },
  {
    "type": "waitTime",
    "config": {
      "timeoutType": "randomInterval",
      "timeoutMin": 5000,
      "timeoutMax": 10000,
      "remark": "Пауза после открытия видео",
      "timeout": 120000
    }
  },
  {
    "type": "waitForSelector",
    "config": {
      "selectorRadio": "CSS",
      "selector": "button.yt-spec-button-shape-next.yt-spec-button-shape-next--tonal.yt-spec-button-shape-next--mono.yt-spec-button-shape-next--size-m.yt-spec-button-shape-next--icon-leading.yt-spec-button-shape-next--segmented-start",
      "serial": 1,
      "isShow": "1",
      "timeout": 30000,
      "variable": "",
      "remark": ""
    }
  },
  {
    "type": "click",
    "config": {
      "selectorRadio": "CSS",
      "selector": "button.yt-spec-button-shape-next.yt-spec-button-shape-next--tonal.yt-spec-button-shape-next--mono.yt-spec-button-shape-next--size-m.yt-spec-button-shape-next--icon-leading.yt-spec-button-shape-next--segmented-start",
      "selectorType": "selector",
      "element": "",
      "serialType": "fixedValue",
      "serial": 1,
      "serialMin": 1,
      "serialMax": 50,
      "button": "left",
      "type": "click",
      "remark": "",
      "_copyItemIndex": "0_15",
      "_copyItemType": ""
    }
  },
  {
    "type": "scrollPage",
    "config": {
      "rangeType": "window",
      "selectorRadio": "CSS",
      "selector": "",
      "serial": 1,
      "distance": 200,
      "type": "smooth",
      "scrollType": "pixel",
      "position": "bottom",
      "remark": "",
      "randomWheelDistance": [
        100,
        150
      ],
      "randomWheelSleepTime": [
        200,
        300
      ]
    }
  },
  {
    "type": "waitTime",
    "config": {
      "timeoutType": "randomInterval",
      "timeout": 1,
      "timeoutMin": 5000,
      "timeoutMax": 10000,
      "remark": ""
    }
  },
  {
    "type": "click",
    "config": {
      "selectorRadio": "CSS",
      "selector": "yt-formatted-string#simplebox-placeholder",
      "selectorType": "selector",
      "element": "",
      "serialType": "fixedValue",
      "serial": 1,
      "serialMin": 1,
      "serialMax": 50,
      "button": "left",
      "type": "click",
      "remark": ""
    }
  },
  {
    "type": "inputContent",
    "config": {
      "selectorRadio": "CSS",
      "selector": "yt-formatted-string#simplebox-placeholder",
      "serialType": "fixedValue",
      "selectorType": "selector",
      "element": "",
      "serial": 1,
      "serialMin": 1,
      "serialMax": 50,
      "intervals": 300,
      "content": "",
      "isRandom": "1",
      "randomContent": "${comment}",
      "randomInputNum": {
        "min": 0.1,
        "max": 10
      },
      "remark": ""
    }
  },
  {
    "type": "click",
    "config": {
      "selectorRadio": "CSS",
      "selector": "button.yt-spec-button-shape-next.yt-spec-button-shape-next--filled.yt-spec-button-shape-next--call-to-action.yt-spec-button-shape-next--size-m",
      "selectorType": "selector",
      "element": "",
      "serialType": "fixedValue",
      "serial": 1,
      "serialMin": 1,
      "serialMax": 50,
      "button": "left",
      "type": "click",
      "remark": ""
    }
  },
  {
    "type": "waitTime",
    "config": {
      "timeoutType": "fixedValue",
      "timeout": 10000,
      "timeoutMin": 1000,
      "timeoutMax": 300000,
      "remark": ""
    }
  }
]
 
Для емайл рассылки подходит ? Если допустим 300 аккаунтов гмайл или mail ? Каждый профиль будет сохранен как -то ? куки прокси фингер и тд...По api можно реализовать это посредством python например ?
 
Пожалуйста, обратите внимание, что пользователь заблокирован
Для емайл рассылки подходит ? Если допустим 300 аккаунтов гмайл или mail ? Каждый профиль будет сохранен как -то ? куки прокси фингер и тд...По api можно реализовать это посредством python например ?
Привет. Да конечно подходит. Судя по твоим вопросам ты никогда не пользовался мультиком?
P.S. Необязательно все усложнять применяя python + api, для твоей задачи достаточно встроенного инструмента RPA.
 
Привет. Да конечно подходит. Судя по твоим вопросам ты никогда не пользовался мультиком?
P.S. Необязательно все усложнять применяя python + api, для твоей задачи достаточно встроенного инструмента RPA.
Пользуюсь но не так видимо полноценно и многое не знаю. Спасибо про RPA почитаю изучу.
 
Пожалуйста, обратите внимание, что пользователь заблокирован
Пользуюсь но не так видимо полноценно и многое не знаю. Спасибо про RPA почитаю изучу.
Рад помочь. На ютубе пару видосов глянь конкретно по ads power и rpa, у них есть демка можешь затестить наши работы, если будут вопросы обращайся.
 
Пожалуйста, обратите внимание, что пользователь заблокирован
Удивительная нить! Спасибо, что поделились :)
Благодарю за обратную связь, рады стараться ;)
 
Пожалуйста, обратите внимание, что пользователь заблокирован
🇷🇺 Шаблон для нагуливания Cookies 🍪 и *скликивания конкурентов в Google Ads 💻

  1. Поиск сайта конкурента. 🔍
  2. Клик по рекламному объявлению 🖱️
  3. Задержка на сайте
- Делаем сайт (сетку сайтов), подбираем ключи по которым клик от 0.50 центов например
- Регистрируемся в Google Ads, Bing Ads (или другие сервисы рекламы) и добавляем свою сетку (желательно иметь несколько аккаунтов)
- А далее тупо накрутка кликов по ADV
Получается можно его использовать не под скликвание рекламы конкурента, а самому зарабатывать на этом
Его можно использовать про выше мною описано?
 


Напишите ответ...
  • Вставить:
Прикрепить файлы
Верх