регулярные выражения + кодировка

linmsqn

Участник
Автор темы
337
9
вообщем, я делаю бота вк и сделал команду, но мне надо чтобы к команде было приписано какое-то значение как в луа типа.
то есть типа команда !пользователь (ид пользователя). как я понимаю - это делается через регулярные выражения приписанные в питоне, но я не знаю как именно это сделать.
Python:
if msg == 'пользователь (сюда я хочу вставлять через вк цифру)':
    URL_TEMPLATE = "ссылка"
    read = requests.get(URL_TEMPLATE)
    soup = bs(read.text, "html.parser")
    u_info1 = soup.find_all('p', class_='two')
    for info1 in u_info1:
        sender(id, info1.text)

и второй вопрос - как изменить кодировку? я делаю запрос к сайту, получаю нужный текст, отправляю его в сообщении вк, но отправляется он мне иероглифами
 
Последнее редактирование:
Решение
D
1. Можно использовать и регулярку, но можно таким образом:
Python:
# Проверяем, что строка начинается с 'пользователь'.
if msg.startsWith('пользователь'):
    # Убираем слева нашу команду, убираем лишние пробелы по бокам.
    arg = msg.lstrip('пользователь').strip()
    # Пытаемся конвертировать строку в число
    try:
        user_id = int(arg)
        # Функция int выкидывает исключение ValueError, если в нее передан некорректный литерал.
    except ValueError:
        # Тут можно отправить пользователю сообщение о том, что он ввел некорректный ид пользователя.
        # Или пропустить выполнение:
        pass
    else:
        # Else сработает только если исключений не было, а значит user_id мы получили.
        # Дальше используете...
D

deleted-user-494704

Гость
1. Можно использовать и регулярку, но можно таким образом:
Python:
# Проверяем, что строка начинается с 'пользователь'.
if msg.startsWith('пользователь'):
    # Убираем слева нашу команду, убираем лишние пробелы по бокам.
    arg = msg.lstrip('пользователь').strip()
    # Пытаемся конвертировать строку в число
    try:
        user_id = int(arg)
        # Функция int выкидывает исключение ValueError, если в нее передан некорректный литерал.
    except ValueError:
        # Тут можно отправить пользователю сообщение о том, что он ввел некорректный ид пользователя.
        # Или пропустить выполнение:
        pass
    else:
        # Else сработает только если исключений не было, а значит user_id мы получили.
        # Дальше используете user_id там, где нужно.
        print(user_id)
        URL_TEMPLATE = "ссылка"
        read = requests.get(URL_TEMPLATE)
        soup = bs(read.text, "html.parser")
        u_info1 = soup.find_all('p', class_='two')
        for info1 in u_info1:
            sender(id, info1.text)

2. Можно попробовать поменять кодировку файла. Открываем файл блокнотом, жмем "Сохранить как" -> внизу выбираем UTF8.
 
  • Нравится
Реакции: Sekondr For