Как-то мне в голову пришла идея адаптировать контент с одного сабреддита в паблик ВКонтакте. Мне стало лень вручную сохранять/переписывать контент, и я решил оптимизировать это дело с помощью простого скрипта Python, который запускался раз в сутки и создавал отложенные записи в паблике на день вперед.
Получение контента с Reddit
Используя Reddit API, я собирал получал ссылки на топ посты за последние сутки, из них выбирал 8, сохраняя ссылки на изображения и записывая заголовки
Для выполнения запросов необходимо импортировать библиотеку requests
Также импортируем requests.auth
для авторизации. Определяем User Agent и получаем токен для работы с сабреддитами
Далее, пользуясь полученным токеном, определяем заголовки для получения ТОП постов из сабреддита за последние сутки
Далее вытаскиваем из полученных данных необходимое: заголовки и ссылки на контент (изображения, которые хранятся в jpg
) — до 8 записей
Чтобы понять, что вытаскивать из ответа, пришлось досконально изучить ответ из метода get_reddit_posts()
Перевод заголовков
Для перевода заголовков с английского на русский сначала использовалось бесплатное API Google переводчика — со временем оно стало платным. Далее я пользовался API переводчика от Яндкеса, который со временем тоже стал платным. Платить за 8 запросов в сутки (240–248 запросов в месяц) я не наблюдал разумным, поэтому отправился искать бесплатные альтернативы
В итоге я нашел инструмент, который справлялся с переводом, на удивление, лучше, чем переводчики Google и Яндекса. На Rapidapi мне удалось отыскать замечательный API переводчика (который, к слову, обходит переводчик Google) — NLP Translation API. Мои требования укладывались в бесплатный план (300 запросов в месяц), поэтому я с радостью воспользовался инструментом
Итак, отправим заголовки на перевод
Постим контент в паблик ВКонтакте
Определим необходимые переменные для работы с API Вконтакте, а также импортируем дополнительные библиотеки, которые помогут нам с обработкой данных
Стоит отметить, что фотографии я загружал в альбом, находящийся в моем профиле (он был приватным, так что с моей страницы ВКонтакте никто не мог увидеть его)
Для загрузки файлов, необходимо получить URL сервера, куда будем загружать данные (он действителен ограниченное время, поэтому каждый раз необходимо получать новую ссылку)
Определим функцию, которая будет загружать файлы по ссылке в альбом
Осталось написать функцию, которая будет создавать отложенные записи в паблике с полученным изображением и переведенным заголовком
Время от времени отправляем скрипт в сон, чтобы нам не заблокировали доступ к API (на момент написания скрипта это было 3 запроса в секунду)
Итог
Итогом всего этого стал альбом на ~9000 изображений и примерно столько же постов в паблике
Паблик
Альбом
Спасибо за прочтение!
Прочитай другие мои истории: