Перейти к основному содержимому

Как запустить CookieRobot с использованием Python

CookieRobot делает ваши профили более легитимными, автоматически собирая файлы cookie с выбранных вами веб-сайтов – никакого ручного просмотра не требуется! В этом руководстве мы расскажем, как использовать его для оптимизации этого процесса.

Приложение на Python Code

В этом примере настройки задаются в объекте payload, внутри функции run_script():

  • CookieRobot будет запускаться через файл cookie_robot.py.
  • Обрабатываются идентификаторы профилей ced16576-a67b-4ae5-8459-c07991d50f27.
    • (Примечание: второй идентификатор профиля ec0cf95f-b199-4b1c-b394-af1e01ac9c09 закомментирован в предоставленном примере кода.)
  • Профиль ced16576-a67b-4ae5-8459-c07991d50f27 будет запускаться в не-безголовом (non-headless) режиме.
  • Веб-сайты – Yahoo.com и Amazon.com, и они будут посещаться в случайном порядке.
  • Поскольку fractionMode установлено в 1, будут посещены 100% указанных веб-сайтов.
  • CookieRobot автоматически примет уведомления о согласии на использование файлов cookie, если они появятся.
подсказка

Для успешной аутентификации скрипта вам нужен файл с именем token в корневом каталоге вашего проекта, содержащий ваш токен авторизации Indigo.

import logging
import requests
import json

# В корне проекта должен быть файл с именем token, содержащий ваш токен аутентификации
def setup_logging():
"""Настройка конфигурации логирования."""
logging.basicConfig(
level=logging.INFO,
format="%(asctime)s - %(levelname)s - %(message)s",
handlers=[
logging.FileHandler("script_runner.log"),
logging.StreamHandler()
]
)

def get_token_from_file():
"""Чтение токена из файла с именем 'token' в корне проекта."""
try:
with open("token", "r") as file:
token = file.read().strip()
return token
except FileNotFoundError:
logging.error("Файл токена не найден в корне проекта.")
raise
except Exception as e:
logging.error("Произошла ошибка при чтении файла токена: %s", str(e))
raise

def run_script():
url = "https://launcher.indigobrowser.com:45011/api/v1"
headers = {
"Content-Type": "application/json",
"Authorization": f"Bearer {get_token_from_file()}"
}

payload = {
"script_file": "cookie_robot.py",
"profile_ids": [
{
"profile_id": "ced16576-a67b-4ae5-8459-c07991d50f27",
"is_headless": False
},
# {
# "profile_id": "ec0cf95f-b199-4b1c-b394-af1e01ac9c09",
# "is_headless": False
# },

],
"script_params": [
{
"name": "websites",
"value": ["yahoo.com", "amazon.com"]
},
{
"name": "randomOrder",
"value": True
},
{
"name": "fractionMode",
"value": 1
},
{
"name": "processCookieConsent",
"value": True
}
]
}
try:
logging.info("Полезная нагрузка для отправки: %s", json.dumps(payload, indent=4))
logging.info("Отправка запроса на конечную точку запуска скрипта...")
response = requests.post(url, headers=headers, data=json.dumps(payload), timeout=30)

if response.status_code == 200:
logging.info("Скрипт успешно выполнен.")
logging.info("Ответ: %s", response.json())
else:
logging.error("Не удалось выполнить скрипт. Код состояния: %d", response.status_code)
logging.error("Ответ: %s", response.text)
except requests.exceptions.RequestException as e:
logging.error("Произошла ошибка при выполнении запроса: %s", str(e))

if __name__ == "__main__":
setup_logging()
run_script()