Как юристу автоматизировать рутину: пишем скрипт для публикации статей на VC.ru
Знаете это чувство, когда написал отличную статью в любимом заметочнике (Notion, Obsidian, да хоть Блокнот), а потом тратишь час на то, чтобы перенести её на VC? Копируешь, вставляешь, и тут начинается ад: заголовки слетели, картинки не встали, код превратился в тыкву, а списки стали сплошным текстом.
Я устал от этого. Я юрист, моё время стоит дорого, и я не хочу тратить его на вёрстку. Поэтому я решил: пусть за меня это делает робот.
В этой статье я расскажу, как мы написали программу на Python, которая берет Markdown-файл и сама, как живой человек, набивает его в редактор VC.ru.
Зачем это нужно?
Казалось бы,
Ctrl+C
->
Ctrl+V
. Но на VC.ru (как и на многих современных платформах) используется блочный редактор (EditorJS). Это значит, что статья — это не просто простыня текста, а набор кирпичиков: "параграф", "заголовок", "цитата", "код".
Если просто скопировать текст с форматированием, редактор часто сходит с ума. А если писать сразу в редакторе VC — рискуешь потерять текст, если вкладка зависнет.
Моя цель была проста:
Пишу статью в локальном Markdown-файле (любимый формат).Нажимаю одну кнопку.Скрипт открывает браузер, заходит на VC и верстает статью за меня.
Инструменты
Мы использовали:
Python — язык, который понимают даже юристы (шутка, но он правда простой). Selenium — библиотека, которая позволяет управлять браузером. Она умеет кликать, печатать и скроллить, притворяясь человеком. Tkinter — для простого графического интерфейса, чтобы выбирать файлы мышкой, а не через консоль.
Путь самурая: от идеи до работающего кода
1. Авторизация без боли
Первое препятствие — вход на сайт. Вводить логин и пароль каждый раз? Нет, спасибо.
Мы спрятали логин и пароль в специальный файл
.env
(так делают программисты, чтобы не светить пароли в коде). Скрипт сам берет их оттуда и авторизуется.
2. Markdown всему голова
Markdown — это когда ты пишешь
# Заголовок
и он становится большим, или
жирный
и он становится жирным. Скрипт читает такой файл и разбирает его на части:
Видит `#` — ага, это заголовок H2.Видит `>` — это цитата.Видит ` ``` ` — это код.Просто текст — это параграф.
3. Битва с редактором (EditorJS)
Вот тут началось самое интересное. Оказалось, что просто "вставить текст" нельзя. Нужно объяснить редактору, какой это блок.
Сначала мы пытались использовать "слэш-команды" (печатали
/h2
чтобы сделать заголовок). Но это работало через раз. Иногда меню не появлялось, иногда выбиралось не то.
Решение: Мы научили скрипт вести себя как опытный пользователь. Он нажимает
Tab
, чтобы открыть меню блоков, или нажимает на "плюсик", если меню не вылезло. Это оказалось самым надежным способом переключать типы блоков.
4. Проблема "Пустых строк"
В какой-то момент скрипт так разогнался, что начал создавать сотни пустых абзацев. Он думал: "Так, я вставил текст, теперь нажму Enter, чтобы создать новый блок". Но редактор VC иногда сам создает новый блок.
Решение: Мы добавили проверку "на пустоту". Перед тем как создать новый блок, скрипт смотрит на текущий. Если он пустой — пишем прямо в него. Если занят — создаем новый. Количество пустых строк сократилось до нуля.
5. Артефакты Markdown
Вставляем текст
Важное слово
, а на сайте так и отображается: со звездочками. VC не понимает Markdown "на лету" внутри текстового блока.
Решение: Мы написали микро-конвертер. Скрипт находит
жирный
,
курсив
,
и превращает их в HTML перед вставкой. Теперь текст выглядит красиво сразу после публикации.
Итог
Теперь процесс выглядит так:
Я пишу статью в VS Code или Obsidian. Запускаю `vc.py`.Выбираю файл в окошке. Откидываюсь на спинку кресла и смотрю, как в браузере магия Selenium сама набирает текст, ставит заголовки и оформляет код.
Это экономит мне кучу нервов и времени. А главное — это чувство, когда рутину за тебя делает робот. Бесценно.
Почему "Мы"?
Вы могли заметить, что я везде пишу "мы сделали", "мы написали". Нет, у меня не раздвоение личности.
Эту программу (и эту статью!) я писал в парном программировании с Trae (можно выбрать также и Cursor или Claude Code, тут без разницы, комсу что удобнее по карману) — умным AI-редактором кода. Я ставил задачи на человеческом языке, а он предлагал решения на Python, исправлял ошибки и объяснял, почему Selenium не может найти кнопку. Это идеальный пример того, как юрист и нейросеть могут работать в тандеме, создавая реальные инструменты.
Если вы тоже устали от ручной верстки — знайте, автоматизация доступна не только программистам. Достаточно немного Python и упорства.
Кому, как и мне, интересно автоматизировать юридические процессы, присоединяйтесь ко мне в телеграме, там я пишу "человеческим языком", а не вот это вот всё)