Как юристу автоматизировать рутину: пишем скрипт для публикации статей на 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 и упорства.

Кому, как и мне, интересно автоматизировать юридические процессы, присоединяйтесь ко мне в телеграме, там я пишу "человеческим языком", а не вот это вот всё)

2
3 комментария