Ranger
17:07 10-09-2019Спасибо за понятную и полезную статью!
Всем привет. Сегодня мы рассмотрим интересный модуль 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 запросы мы рассматривать не будем, так как они не так часто используются.
На этом данная статья подошла к концу. Если у вас остались вопросы, пишите в комментариях или группе
вк.я с вами прощаюсь. Желаю вам успехов и удачи! Пока.
Внимание!!! Комментарий теперь перед публикацией проходит модерацию
Спасибо за понятную и полезную статью!