Requests
requests — это библиотека, с помощью которой можно делать запросы в интернет. Само слово “requests” переводится как запросы. Вот как сделать запрос на сайт google.com:
import requests
url = 'https://google.com'
response = requests.get(url)
response.raise_for_status()
Функция requests.get()
делает запрос к сайту google.com, а в переменной response
теперь ответ от сайта. Ответ — это не строка и не число. Это сложный объект, в котором есть много всего. Подробнее об этом можно посмотреть в слайдах.
Строчка response.raise_for_status()
нужна для того, чтобы проверить, понял вас сервер или нет. Если сервер вернёт 404 «Ресурс не найден», то в response
не будет странички сайта google.com, а будет только “Ошибка 404”. Если не вызвать raise_for_status
, программа подумает, что всё в порядке, что вы так и хотели: отправить запрос на страницу, которой нет. Обязательно вызывайте .raise_for_status()
после каждого запроса в интернет, иначе вы рискуете потратить кучу времени на поиск ошибки, которую замалчивает библиотека requests
.
Всегда вызывайте .raise_for_status()
Вот как получить текст ответа от сервера:
print(response.text)
В ответ вы получите огромный HTML-документ одной строкой. Начинаться будет так:
<!doctype html><html itemscope="" itemtype="http://schema.org/WebPage" lang="ru"><head>...
Именно это получает ваш браузер, когда вы заходите на сайт google.com, и из этого он уже отрисовывает красивую страничку.
Но стоит понимать, что requests
может скачивать не только HTML-документы, а буквально всё, что есть в интернете.
Вот как скачать картинку:
import requests
url = "https://dvmn.org/filer/canonical/1542890876/16/"
response = requests.get(url)
response.raise_for_status()
filename = 'dvmn.svg'
with open(filename, 'wb') as file:
file.write(response.content)
То же самое: делаем запрос по ссылке, получаем ответ, потом сохраняем его в файл. Единственное отличие в том, что вместо response.text
для картинок используется response.content
, потому что картинка — это не текст.
.text
— для текста, .content
— для картинки
Узнать больше
Попробуйте бесплатные уроки по Python
Получите крутое код-ревью от практикующих программистов с разбором ошибок и рекомендациями, на что обратить внимание — бесплатно.
Переходите на страницу учебных модулей «Девмана» и выбирайте тему.