Приведите в порядок ваш код.
Вместо
request = requests.get("https://vk.com/id"+str(user_id))
используйте f-строки
request = requests.get(f"https://vk.com/id{user_id}")
Лучше вообще таким образом не получать данные о пользователе. Используйте
этот метод, чтобы получить информацию о пользователях. (Также можно сохранять в базу данных, но что если пользователь поменяет имя?)
Используйте модуль logging, чтобы вести логи, а не использовать print.
Сделайте больше проверок, обрабатывайте ошибки:
1) Что если произойдет ошибка в
request = requests.get("https://vk.com/id"+str(user_id))
?
2) Что если сам long polling выдаст какую-нибудь ошибку?
3) Что если вам сразу напишут много людей?
import bs4 as bs4
Зачем? Достаточно
import bs4
И по мелочи:
1) Используйте
клавиатуру вместо команд ПРИВЕТ, ПОКА...
2) Вместо сложной конструкции:
vk.method('messages.send', ...)
Используйте
api = vk.get_api()
api.messages.send(user_id=user_id, message=message, random_id=random.randint(0, 2048))
3) Не называйте перменные как weather1 или p3. Почитайте про
оформление кода.
4) lxml быстрее парсит HTML.
soup = BeautifulSoup(some_html, 'lxml')
Его еще нужно установить
pip install lxml
Спасибо,
Falconer