Как запустить CookieRobot с помощью Python
CookieRobot делает профили более реалистичными, автоматически собирая файлы cookie с выбранных вами сайтов. В этом руководстве мы покажем, как использовать CookieRobot для оптимизации ваших профилей и ускорения работы.
Уже знакомы с автоматизацией или сделали первые шаги? Воспользуйтесь оглавлением справа, чтобы сразу перейти к нужной информации.
Пример Python-скрипта
В этом примере параметры настраиваются в объекте payload
внутри run_script()
:
- CookieRobot будет работать через файл
cookie_robot.py
. - Используемые ID профилей —
ced16576-a67b-4ae5-8459-c07991d50f27
иec0cf95f-b199-4b1c-b394-af1e01ac9c09
. - Оба профиля будут работать не в headless-режиме.
- Веб-сайты — Yahoo.com и Amazon.com, и они будут посещаться в случайном порядке.
- Поскольку значение
fractionMode
равно 1, будут посещены 100% перечисленных сайтов. - CookieRobot автоматически принимает уведомления о согласии на использование файлов cookie, если они появляются.
import logging
import requests
import json
# In project root you need a file called token with your auth token in there
def setup_logging():
"""Set up logging configuration."""
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():
"""Read the token from a file called 'token' in the project root."""
try:
with open("token", "r") as file:
token = file.read().strip()
return token
except FileNotFoundError:
logging.error("Token file not found in the project root.")
raise
except Exception as e:
logging.error("An error occurred while reading the token file: %s", str(e))
raise
def run_script():
url = "https://launcher.mlx.yt:45001/api/v1/run_script"
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("Payload to send: %s", json.dumps(payload, indent=4))
logging.info("Sending request to the script runner endpoint...")
response = requests.post(url, headers=headers, data=json.dumps(payload), timeout=30)
if response.status_code == 200:
logging.info("Script executed successfully.")
logging.info("Response: %s", response.json())
else:
logging.error("Failed to execute script. Status code: %d", response.status_code)
logging.error("Response: %s", response.text)
except requests.exceptions.RequestException as e:
logging.error("An error occurred while making the request: %s", str(e))
if __name__ == "__main__":
setup_logging()
run_script()