Основы автоматизации: работа с файлами и API
Данный материал носит информационно-обучающий характер и не является юридической или финансовой консультацией. Применение полученных знаний на практике требует соблюдения законодательства и этических норм. Ответственность за любые действия, предпринятые на основе информации из курса, лежит на вас.
Мы уже научились проектировать правила детекции и снижать количество ложных срабатываний. Однако данных становится так много, что ручная проверка каждого кейса через веб-интерфейс превращается в «бутылочное горлышко». Чтобы освободить время для анализа сложных схем, нужно делегировать рутину коду.
Зачем антифрод-исследователю Python
Автоматизация не заменяет аналитика, а расширяет его возможности. Ваша задача — научиться связывать базы данных, файлы и внешние сервисы в единый поток.
Типичный рабочий цикл состоит из трех шагов:
- Извлечение: взять список ID из SQL-выгрузки или CSV.
- Обогащение: проверить IP, email или ID устройства через внешние базы.
- Сохранение: записать результат для загрузки в антифрод-систему.
Работа с файловой системой
Для глубокого анализа мы используем Pandas, но для быстрой обработки логов или конфигураций важно освоить базовое чтение файла и запись файла встроенными средствами Python. Это быстрее и потребляет меньше памяти.
Для работы с файлами используйте контекстный менеджер with. Он автоматически закрывает файл, даже если в коде произойдет ошибка.
# Чтение списка ID из текстового файла
with open('suspicious_ids.txt', 'r', encoding='utf-8') as file:
# Убираем лишние пробелы и переносы строк
fraud_list = [line.strip() for line in file.readlines()]
# Запись результатов в CSV
with open('report_2026.csv', 'w', encoding='utf-8') as output:
output.write("user_id,status\n")
for user_id in fraud_list:
output.write(f"{user_id},verified\n")
Автоматизация через API
Автоматизация через API (Application Programming Interface) — это способ заставить скрипт общаться с другими сервисами напрямую, без браузера.
В антифроде API используют для:
- проверки репутации IP через черные списки;
- запроса данных из блокчейн-эксплореров;
- проверки данных в базах утечек.
Мы будем работать с библиотекой httpx. Она поддерживает современные стандарты HTTP и работает стабильнее старых аналогов.
Как показано в Схеме 1, скрипт становится посредником: он собирает данные из разных точек и объединяет их в отчет.
Формат JSON
Большинство API возвращают данные в формате JSON. В Python они превращаются в обычные словари. Важно извлекать только нужные поля, так как ответ может содержать десятки лишних параметров.
Пример ответа API:
{
"ip": "195.133.x.x",
"risk_score": 85,
"details": {
"is_proxy": true,
"provider": "DigitalOcean"
}
}
Здесь нас интересуют только risk_score и is_proxy.
Практикум: запрос к API
Объединим чтение файла и запрос к внешнему сервису.
import httpx
import time
# Читаем адреса
with open('ips.txt', 'r') as f:
ips = [line.strip() for line in f]
results = []
# Создаем клиент для запросов
with httpx.Client() as client:
for ip in ips:
try:
response = client.get(f"https://api.antifraud-service.ru/v1/check/{ip}")
if response.status_code == 200:
data = response.json()
results.append(f"{ip}: {data['risk_score']}")
# Пауза, чтобы сервис не заблокировал нас за спам (Rate Limiting)
time.sleep(0.5)
except Exception as e:
print(f"Ошибка на IP {ip}: {e}")
# Сохраняем результат
with open('check_results.txt', 'w') as f:
f.write("\n".join(results))
Три критические ошибки автоматизации
- Игнорирование ошибок: без блока
try-exceptлюбая сетевая заминка прервет работу скрипта, и вы потеряете прогресс. - Превышение лимитов (Rate Limiting): слишком частые запросы приведут к блокировке вашего IP или ключа. Всегда используйте
time.sleep(). - Отсутствие логов: если скрипт обрабатывает 10 000 строк, вы должны видеть прогресс в консоли, иначе непонятно, работает он или завис.
Мы освоили базу: чтение файлов, работу с API и сохранение данных. В следующей теме мы перейдем к созданию полноценных конвейеров (пайплайнов) для одновременной обработки данных из множества источников.
Понравился урок?
Сохраните прогресс и получите персональный курс по любой теме — без форм и паролей
Продолжить в Telegram