requests
Библиотека requests является одной из самых популярных библиотек в Python. Она позволяет отправлять HTTP / 1.1 запросы без необходимости вручную добавлять строки запросов к URL-адресам или кодировать данные в форме POST. С помощью библиотеки requests вы можете выполнять множество вещей, в том числе:
добавление данных формы,
добавление составных файлов,
и доступ к данным ответа Python
Выполнение запросов
Первое, что вам нужно сделать, это установить библиотеку:
Чтобы проверить, была ли установка успешной, вы можете выполнить очень простой тест в интерпретаторе python, просто набрав:
Если установка прошла успешно, ошибок не будет.
HTTP-запросы включают в себя:
GET
POST
PUT
DELETE
OPTIONS
HEAD
Создание запроса GET
Вы можете выполнять запросы очень просто.
Приведенная выше команда получит веб-страницу Google и сохранит информацию в переменной req. Затем мы можем получить другие атрибуты. Например, чтобы узнать, была ли загрузка веб-страницы Google успешной, мы запросим код status_code.
Что, если мы хотим выяснить тип кодировки веб-страницы Google?
Вы также можете узнать содержание ответа.
Это только усеченное содержание ответа.
Создание запроса POST
В общем, запрос POST используется для создания или обновления данных. Особенно при отправке данных форм.
Предположим, у вас есть форма регистрации, в которой в качестве входных данных используются адрес электронной почты и пароль. Когда вы нажимаете кнопку отправки для регистрации, запрос на публикацию будет выглядеть так, как показано ниже.
Создание запроса PUT
Запрос PUT похож на POST. Он используется для обновления данных. Например, API ниже демонстрирует, как выполнить PUT-запрос.
Создание запроса DELETE
Запрос DELETE, как следует из названия, используется для удаления данных. Ниже приведен пример DELETE-запроса.
Пакет urllib
urllib это пакет, который собирает несколько модулей для работы с URL-адресами, а именно:
urllib.request для открытия и чтения URL.
urllib.error содержит исключения, поднятые urllib.request
urllib.parse для разбора URL-адресов.
urllib.robotparser для разбора файлов robots.txt.
urllib.request предлагает очень простой интерфейс в виде функции urlopen, способной извлекать URL-адреса с использованием различных протоколов. Она также предлагает немного более сложный интерфейс для обработки базовой аутентификации, файлов cookie, прокси и т. д.
Как получить URL с помощью urllib
Простейший способ использовать urllib.request заключается в следующем:
Если вы хотите получить интернет-ресурс и сохранить его, вы можете сделать это с помощью функции urlretrieve().
Загрузка изображений с помощью Python
Скачивание PDF файлы с помощью Python
Скачивание Zip файлов с помощью Python
Скачивание видео
Заключение
В этом руководстве рассматриваются наиболее часто используемые методы загрузки файлов, а также наиболее распространенные форматы. Несмотря на то, что вы будете писать меньше кода при использовании модуля urllib, предпочтительно использовать модуль requests из-за его простоты, популярности и широкого спектра функций, включая:
Поддерживаемый поллинг
Международные домены и URL-адреса
Сессии с сохранением Cookie
Верификация SSL как в браузере
Автоматическое декодирование контента
Базовая / дайджест-аутентификация
Элегантные куки ключ / значение
Автоматическая декомпрессия
Тела ответа Unicode
Поддержка HTTP(S) Proxy
Загрузка нескольких файлов
Потоковые загрузки
Время ожидания подключения
Чанкированные запросы
Поддержки .netrc
Библиотека requests является одной из самых популярных библиотек в Python. Она позволяет отправлять HTTP / 1.1 запросы без необходимости вручную добавлять строки запросов к URL-адресам или кодировать данные в форме POST. С помощью библиотеки requests вы можете выполнять множество вещей, в том числе:
добавление данных формы,
добавление составных файлов,
и доступ к данным ответа Python
Выполнение запросов
Первое, что вам нужно сделать, это установить библиотеку:
1 | pip install requests |
Чтобы проверить, была ли установка успешной, вы можете выполнить очень простой тест в интерпретаторе python, просто набрав:
1 | import requests |
Если установка прошла успешно, ошибок не будет.
HTTP-запросы включают в себя:
GET
POST
PUT
DELETE
OPTIONS
HEAD
Создание запроса GET
Вы можете выполнять запросы очень просто.
1 2 | import requests req = requests.get("Google") |
Приведенная выше команда получит веб-страницу Google и сохранит информацию в переменной req. Затем мы можем получить другие атрибуты. Например, чтобы узнать, была ли загрузка веб-страницы Google успешной, мы запросим код status_code.
1 2 3 4 5 6 | import requests req = requests.get(“Google") req.status_code 200 # 200 means a successful request |
Что, если мы хотим выяснить тип кодировки веб-страницы Google?
1 2 | req.encoding ISO-8859–1 |
Вы также можете узнать содержание ответа.
1 | req.text |
Это только усеченное содержание ответа.
1 2 3 4 5 6 7 | '<!doctype html><html itemscope="" itemtype="WebPage - Schema.org Type" lang="en "><head><meta content="Search the world\'s information, including webpages, imag es, videos and more. Google has many special features to help you find exactly w hat you\'re looking for." name="description"><meta content="noodp" name="robots" ><meta content="text/html; charset=UTF-8" http-equiv="Content-Type"><meta conten t="/images/branding/googleg/1x/googleg_standard_color_128dp.png" itemprop="image "><title>Google</title><script>(function(){window.google={kEI:\'_Oq7WZT-LIf28QWv |
Создание запроса POST
В общем, запрос POST используется для создания или обновления данных. Особенно при отправке данных форм.
Предположим, у вас есть форма регистрации, в которой в качестве входных данных используются адрес электронной почты и пароль. Когда вы нажимаете кнопку отправки для регистрации, запрос на публикацию будет выглядеть так, как показано ниже.
1 2 3 | data = {"email":"info@tutsplus.com", "password":"12345") req = requests.post(“Google, params = data) |
Создание запроса PUT
Запрос PUT похож на POST. Он используется для обновления данных. Например, API ниже демонстрирует, как выполнить PUT-запрос.
1 2 3 | data= {"name":"tutsplus", "telephone":"12345") r.put("Unlock Success with Premium Domain Names, params= data") |
Создание запроса DELETE
Запрос DELETE, как следует из названия, используется для удаления данных. Ниже приведен пример DELETE-запроса.
1 2 3 | data= {'name':'Tutsplus'} url = "https://www.contact.com/api/") response = requests.delete(url, params= data) |
Пакет urllib
urllib это пакет, который собирает несколько модулей для работы с URL-адресами, а именно:
urllib.request для открытия и чтения URL.
urllib.error содержит исключения, поднятые urllib.request
urllib.parse для разбора URL-адресов.
urllib.robotparser для разбора файлов robots.txt.
urllib.request предлагает очень простой интерфейс в виде функции urlopen, способной извлекать URL-адреса с использованием различных протоколов. Она также предлагает немного более сложный интерфейс для обработки базовой аутентификации, файлов cookie, прокси и т. д.
Как получить URL с помощью urllib
Простейший способ использовать urllib.request заключается в следующем:
1 2 3 | import urllib.request with urllib.request.urlopen('Welcome to Python.org') as response: html = response.read() |
Если вы хотите получить интернет-ресурс и сохранить его, вы можете сделать это с помощью функции urlretrieve().
1 2 3 | import urllib.request filename, headers = urllib.request.urlretrieve('Welcome to Python.org') html = open(filename) |
Загрузка изображений с помощью Python
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 | url = 'https://www.python.org/static/opengraph-icon-200x200.png' # downloading with urllib # imported the urllib library import urllib # Copy a network object to a local file urllib.urlretrieve(url, "python.png") # downloading with requests # import the requests library import requests # download the url contents in binary format r = requests.get(url) # open method to open a file on your system and write the contents with open("python1.png", "wb") as code: code.write(r.content) |
Скачивание PDF файлы с помощью Python
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 | url = 'https://static.googleusercontent.co...eblogs/pdfs/google_predicting_the_present.pdf' # downloading with urllib # import the urllib package import urllib # Copy a network object to a local file urllib.urlretrieve(url, "tutorial.pdf") # downloading with requests # import the requests library import requests # download the file contents in binary format r = requests.get(url) # open method to open a file on your system and write the contents with open("tutorial1.pdf", "wb") as code: code.write(r.content) |
Скачивание Zip файлов с помощью Python
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 | url = 'https://codeload.github.com/fogleman/Minecraft/zip/master' # downloading with requests # import the requests library import requests # download the file contents in binary format r = requests.get(url) # open method to open a file on your system and write the contents with open("minemaster1.zip", "wb") as code: code.write(r.content) # downloading with urllib # import the urllib library import urllib # Copy a network object to a local file urllib.urlretrieve(url, "minemaster.zip") |
Скачивание видео
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 | url = ' video_name = url.split('/')[-1] # using requests # imported the requests library import requests print "Downloading file:%s" % video_name # download the url contents in binary format r = requests.get(url) # open method to open a file on your system and write the contents with open('tutorial.mp4', 'wb') as f: f.write(r.content) # using urllib # imported the urllib library import urllib print "Downloading file:%s" % video_name # Copy a network object to a local file urllib.urlretrieve(url, "tutorial2.mp4") |
Заключение
В этом руководстве рассматриваются наиболее часто используемые методы загрузки файлов, а также наиболее распространенные форматы. Несмотря на то, что вы будете писать меньше кода при использовании модуля urllib, предпочтительно использовать модуль requests из-за его простоты, популярности и широкого спектра функций, включая:
Поддерживаемый поллинг
Международные домены и URL-адреса
Сессии с сохранением Cookie
Верификация SSL как в браузере
Автоматическое декодирование контента
Базовая / дайджест-аутентификация
Элегантные куки ключ / значение
Автоматическая декомпрессия
Тела ответа Unicode
Поддержка HTTP(S) Proxy
Загрузка нескольких файлов
Потоковые загрузки
Время ожидания подключения
Чанкированные запросы
Поддержки .netrc