Блог веб разработки статьи | видеообзоры | исходный код

Блог веб разработки статьи | видеообзоры | исходный код

webfanat вконтакте webfanat youtube

requests python

requests python

Всем привет. Сегодня мы рассмотрим интересный модуль requests позволяющий отправлять различные http запросы. Итак, поехали!

Для начала устанавливаем модуль через pip.

pip install requests

Затем импортируем его в программу.

import requests

Все теперь мы можем с ним работать.

Отправим обычный get запрос на главную страницу моего блога.

response = requests.get('https://webfanat.com')

print(response)

Здесь мы с помощью метода get() отправили get запрос на страницу по адресу https://webfanat.com и в переменную response получили ответ.

Теперь сам ответ мы можем обрабатывать через специальные методы и свойства.

К примеру свойство status_code вернет нам код статуса ответа от сервера.

print(response.status_code)

Если вернется код со статусом 200, это значит что запрос успешно выполнен и страница найдена.

Для просмотра содержимого ответа мы можем воспользоваться свойством content.

print(response.content)

Нам вернется все содержимое которое содержит ответ.

Можно также просматривать заголовки ответа.

print(response.headers)

Здесь c помощью свойства headers мы просматриваем все возвращенные заголовки ответа нашего запроса.

Если мы хотим просмотреть отдельный заголовок, к примеру Set-Cookie:

print(response.headers.get('Set-Cookie'))

К свойству headers добавляем метод get() в котором указываем название заголовка. И в результате нам возвращается его содержимое.

Для получения возвращаемого контента ответа, нужно обратится к свойству text.

print(response.text)

В результате вернется html код главной страницы моего блога. Для удобства все это дело можно записать в файл.

content = response.text

file = open('index.php', 'w')

file.write(content)

file.close()

В результате создастся файл index.php куда и будет помещен html код.

Еще если в качестве ответа от сервера возвращается строка в json формате мы можем ее обработать через метод json().

print(response.json())

В итоге у нас строка преобразуется в json объект.

Отлично! C обработкой запросов мы с вами разобрались. Теперь вернемся в начало к отправке запроса.

Метод get() объекта requests помимо адреса куда будет отправляться запрос может принимать еще такие параметры, как headers(заголовки) и params(параметры).

Пример:

param = {'id': 4}

header = {'Set-cookie': '5ceeuc6ee6e5ece'}

response = requests.get('https://webfanat.com/article_id', params=param, headers=header)

print(response.text)

Здесь мы отправляем запрос по адресу https://webfanat.com/article_id?id=4 и передаем заголовок Set-cookie: 5ceeuc6ee6e5ece.

Как видите значения параметром params и headers устанавливается в формате json.

В итоге мы через свойство text выводим содержимое страницы https://webfanat.com/article_id?id=4.

Подобную схему мы можем использовать и при отправке post() запросов:

field = {'login': 'ajfjvfd', 'password': 'fdcfdccsd'}

header = {'Set-cookie': 'b47ctr46ctb6r43tbcf4'}

res = requests.post("http://webfanat.com/login", data=field, headers=header)

print(res.text)

Обратите внимание что здесь мы вместо параметра params используем параметр data. Это связано с тем что мы данные в post запросе передаем не через адресную строку.

Для передачи файлов через post запрос используется параметр files.

Вот в принципе и все что я хотел вам рассказать про работу с модулем requests. Мы рассмотрели самое основное. Put, delete, head и options запросы мы рассматривать не будем, так как они не так часто используются.

На этом данная статья подошла к концу. Если у вас остались вопросы, пишите в комментариях или группе

вк.

я с вами прощаюсь. Желаю вам успехов и удачи! Пока.

Оцените статью:

Статьи

Разработки

Комментарии

Oleg

21:03 23-09-2019

Андрей, можете пояснить, для чего они просят вас перезвонить? Может мне тоже это нужно. Заранее благодарю вас.

Антон

23:22 21-09-2019

Перезвоните мне пожалуйста по номеру. 8 (900) 657-87-80 Антон

Ranger

17:07 10-09-2019

Спасибо за понятную и полезную статью!

rardovent

01:10 24-08-2019

Hello. And Bye.

Антон

16:25 01-07-2019

Перезвоните мне пожалуйста по номеру 8(953)367-35-45 Антон.

Реклама

Запись экрана

Данное расширение позволяет записывать экран и выводит видео в формате webm