Модуль urllib.request Python
Модуль urllib.request позволяет получать данные по URL с помощью стандартной библиотеки Python.
from urllib import request
Для многих проектов сторонние библиотеки, такие как Requests, удобнее. Используйте urllib.request, когда нужна только стандартная библиотека.
Открытие URL
urlopen возвращает объект ответа.
from urllib import request
response = request.urlopen('data:text/plain,Hello%20Python')
print(response.headers.get_content_type())
text/plain
Чтение данных ответа
Тело ответа возвращается в виде bytes.
from urllib import request
response = request.urlopen('data:text/plain,Hello%20Python')
content = response.read()
print(type(content).__name__)
print(content.decode('utf-8'))
bytes
Hello Python
Добавление таймаута
При открытии реальных сетевых URL задавайте таймаут, чтобы программа не ждала бесконечно.
from urllib import request
response = request.urlopen('data:text/plain,ok', timeout=5)
print(response.read().decode('utf-8'))
ok
WARNING
Сетевые вызовы могут завершаться ошибкой по многим причинам. Обрабатывайте исключения вроде urllib.error.URLError и будьте осторожны при получении ненадежных URL.