Добро пожаловать в StackOverflow!Что касается получаемой ошибки, urllib
не ожидает, что данные POST будут нормальной строкой - их нужно кодировать как байтовый массив.Вы можете исправить это, просто зашифровав данные перед отправкой:
encoded = urllib.parse.urlencode(data).encode('utf-8')
Обратите внимание, что это отличается от urlencode
.Это просто заменяет определенные символы в строке специальными кодами, но результат по-прежнему является обычной строкой.
Как и предполагал @stovfl, сделать веб-запросы в Python намного проще * сочень популярная библиотека запросов .Следуйте инструкциям по установке (они различаются в зависимости от того, как вы установили Python, но вам, вероятно, просто нужно набрать pip install requests
в командной строке), затем перейдите к примеру basic authentication и адаптируйте его для своего варианта использования..