Библиотека запросов Python

Python

грамматика

requests.nameofmethod(parameters)

Предыстория и начало работы

Библиотека _requests_ имеет несколько методов GET.первая частьиВторая частьвключает в себя множествоrequests.get(). Основное внимание в этом посте уделяется остальным методам GET и обработке ошибок.

Если библиотека запросов не существует на вашем компьютере, просмотритепервая частьинструкция о.

"получить" запрос "заголовок"

По умолчанию это значение равноNone. еслиTrue, HTTPS-заголовокСловарьбудут переданы на указанный URL.

Когда создается HTTP_REQUEST_, вместе с запросом передается строка User-Agent, эта строка содержит следующие сведения о вашей системе.

  • Тип приложения
  • Операционная система
  • поставщик программного обеспечения
  • Версия программного обеспечения запрошенного пользовательского агента

Сервер использует эти сведения для определения возможностей вашего компьютера.

В этом примере этот код отправит свои заголовки на сервер:

  • Строка [1] импортrequestбиблиотека
  • Строка [2] сохраняет корректную строку User-Agent в переменной _hdrs_.
  • Строка [3] пытается подключиться к _URL_ с заголовком, установленным на _hdrs_
  • Строка [4] выводит заголовок ответа на терминал
  • Строка [5] закрывает открытое соединение

код

import requests
hdrs = {
    "Connection": "keep-alive",
    "User-Agent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, 
    like Gecko) Chrome/72.0.3626.121 Safari/537.36"}

response = requests.get('https://app.finxter.com', headers=hdrs)
print(response.headers)
response.close()

вывод

{'Server': 'nginx/1.14.0 (Ubuntu)', 'Date': 'Fri, 05 Nov 2021 16:59:19 GMT', 'Content-Type': 'text/html; charset=utf-8',
'Transfer-Encoding': 'chunked', 'Connection': 'keep-alive', 'X-Frame-Options': 'DENY', 'Vary': 'Cookie', 'X-Content-Type-Options': 'nosniff', 'Set-Cookie': 'sessionid=0fb6y6y5d8xoxacstf74ppvacpmt2tin; expires=Fri, 19 Nov 2021 16:59:19 GMT; HttpOnly; Max-Age=19600; Path=/; SameSite=Lax', 'Content-Encoding': 'gzip'}

Уведомление: это отличная функция Python. Если вы заинтересованы в парсинге веб-страниц, вы можете углубиться в эту тему.

"получить" запрос "Агентство"

Если вы заядлый веб-скрейпер или вам нужно сохранить свою конфиденциальность в Интернете, используйте прокси-сервер. Прокси скрывает ваш IP-адрес от внешнего мира.

В этом примере мы получаем новый IP-адрес от бесплатного прокси-сервиса и добавляем его в словарь.

  • Строка [1] импортrequestбиблиотека
  • Строка [2] устанавливает URL в переменную _the_url_
  • Строка [3] добавляет новый прокси в качестве словаря, на данный момент
  • Строка [4] пытается подключиться к этому _URL_ и устанавливает прокси на _my_proxy_
  • Строка [5] выводит ответ кода состояния на терминал.
  • Строка [6] закрывает открытое соединение

код

import requests
the_url  = 'https://somewebsite.com'
my_proxy = {"https": "https:157.245.222.225:3128"}
response = requests.get(the_url, proxies=my_proxy)
print(response.status_code)
response.close()

вывод

200

"получить" запрос. "поток"

Этот метод не является обязательным. По умолчанию это значение равноFalse. еслиFalse, передача ответа указывает на то, что файл должен быть загружен немедленно. еслиTrue, файл передается

  • Строка [1] импортrequestбиблиотека
  • Строка [2] устанавливает _URL_ в местоположение логотипа, а поток — в _True_.
  • Строка [3] выводит ответ кода состояния на терминал.
  • Строка [4] закрывает открытое соединение

код

import requests
response = requests.get('https://app.finxter.com/static/favicon_coffee.png', stream=True)
print(response.status_code)
response.close()

вывод

200

Обработка исключений

Есть много исключений сrequest'_s_ связанная с библиотекой

Есть два способа справиться с этой ситуацией

заниматься отдельно

В этом примере мы будемтайм-аутприбытьrequests.get(). Если время ожидания соединения или сервера истекло, произойдет исключение:

  • Строка [1] импортrequestбиблиотека
  • Строка [2] инициализирует оператор _try_. Код здесь будет запускаться первым
  • Строка [3] пытается подключиться к URL-адресу и устанавливает тайм-аут
  • Строка [4] выводит код состояния на терминал
  • Строка [5] закрывает открытое соединение
  • Строка [6] — это оператор _except_. Если происходит _timeout_, код падает сюда
  • Строка [7] выводит на терминал сообщение _Timed Out!_ и скрипт завершает работу.

код

import requests
try:
   response = requests.get('https://app.finxter.com', timeout=(2,4))
   print(response.status_code)
   response.close()
except requests.ConnectTimeout():
    print('Timed Out!')

вывод

200

все исключения

Все исключения в библиотеке запросов наследуются от request.exceptions.RequestException. В этом примере этот код перехватывает все исключения

  • Строка [1] импортrequestбиблиотека
  • Строка [2] инициализирует оператор _try_. Код здесь будет запускаться первым
  • Строка [3] пытается подключиться к URL-адресу и устанавливает тайм-аут
  • Строка [4] выводит код состояния на терминал
  • Строка [5] закрывает открытое соединение
  • Строка [6] — это оператор _except_, если возникнет какое-либо исключение, код попадет сюда
  • Строка [7] выводит информацию об исключении (e) на терминал, и скрипт завершает работу.

код

import requests
try:
   response = requests.get('https://app.finxter.com', timeout=(2,4))
   print(response.status_code)
   response.close()
except requests.exceptions.RequestException as e:
    print(e)

вывод

200

Кроме того

Вы также можете преобразовать приведенное выше в повторно используемую функцию, изменив этот код в соответствии с различными потребностями.

код

def error_code(url):
    try:
        response = requests.get('https://app.finxter.c', timeout=(2,4))
    except requests.exceptions.RequestException as e:
        return e
       
nok = error_code('https://app.finxter.com')
print(nok)

Суммировать

В этой статье мы узнали как.

  • использовать заголовочные файлы
  • Воспользуйтесь агентством
  • использовать поток
  • Реализовать обработку исключений