Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #!/usr/bin/env python3
- # -*- coding: utf-8 -*-
- import sys
- import re
- import requests
- import webbrowser
- from bs4 import BeautifulSoup
- def remove_banned_words(query, banned_words):
- """
- Если нужно удалить из строки какие-то запрещённые слова.
- Можно вырезать, заменять и т.д.
- """
- for bw in banned_words:
- # Регулярка для "слово" без учёта регистра
- pattern = re.compile(re.escape(bw), re.IGNORECASE)
- query = pattern.sub("", query)
- # Убираем двойные пробелы после замен
- query = re.sub(r"\s+", " ", query).strip()
- return query
- def main():
- # Здесь можно задать список слов, которые нужно удалять:
- banned_words = ["badword1", "плохое_слово", "запрещенка"]
- # Проверим, что мы получили хотя бы 1 аргумент
- if len(sys.argv) < 2:
- print("Не передан поисковый запрос! Ожидается, что скрипт получит аргумент.")
- sys.exit(1)
- # Текст от награды
- user_query = sys.argv[1]
- # Удалим из него "банворды"
- cleaned_query = remove_banned_words(user_query, banned_words)
- # Приписываем «без банвордов»
- # Если нужно добавить в конец запроса, то делаем так:
- final_query = cleaned_query + " без банвордов"
- # Собираем URL для запроса к RuTube
- # По состоянию на момент примера, поиск выглядит так:
- # https://rutube.ru/search/?query=DESPACITO
- # Подставляем наш запрос как URL-encoded
- # (requests сам url-encode сделает при использовании params)
- search_url = "https://rutube.ru/search/"
- # Параметры запроса
- params = {
- "query": final_query
- }
- try:
- r = requests.get(search_url, params=params, timeout=10)
- r.raise_for_status()
- except Exception as e:
- print(f"Ошибка при запросе к RuTube: {e}")
- sys.exit(1)
- # Парсим HTML
- soup = BeautifulSoup(r.text, "html.parser")
- # Ищем первый блок с результатами.
- # На момент написания этого ответа структура такая:
- # <a class="card__link" href="/video/...
- # Но это может измениться со временем.
- first_link = soup.select_one("a.card__link")
- if not first_link:
- print("Не удалось найти ни одного результата по запросу!")
- sys.exit(0)
- # Получаем относительную ссылку
- relative_url = first_link.get("href", "")
- if not relative_url.startswith("/"):
- print("Структура страницы изменилась, относительная ссылка не найдена.")
- sys.exit(0)
- # Формируем абсолютную ссылку на видео
- # Обычно это rutube.ru + относительный путь
- video_url = "https://rutube.ru" + relative_url
- # Открываем ссылку в браузере по умолчанию
- print(f"Открываем видео: {video_url}")
- webbrowser.open(video_url)
- if __name__ == "__main__":
- main()
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement