КАКОЙ МОДУЛЬ СТАНДАРТНОЙ БИБЛИОТЕКИ PYTHON ПОЗВОЛЯЕТ РАБОТАТЬ С WWW НА БОЛЕЕ НИЗКОМ УРОВНЕ
Стандартная библиотека Python содержит модуль socket , который предоставляет возможность работать с сетью на низком уровне. Этот модуль позволяет осуществлять прямой доступ к сокетам, используемым для передачи данных по сети.
Чтобы выполнить HTTP-запрос, необходимо установить соединение с сервером, сформировать HTTP-запрос и отправить его. В следующем примере показано, как выполнить GET-запрос к серверу Google:
import socket
s = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
s.connect((‘www.google.com’, 80))
s.sendall(b’GET / HTTP/1.1\r\nHost: www.google.com\r\n\r\n’)
data = s.recv(1024)
s.close()
print(repr(data))
В этом примере мы создаем сокет и устанавливаем соединение с сервером Google на порту 80. Затем мы отправляем GET-запрос, запросив содержимое корневой страницы. Наконец, мы получаем ответ от сервера и закрываем соединение с сокетом.
Хотя модуль socket предоставляет возможность осуществлять прямой доступ к сокетам, использование этого модуля может быть достаточно сложным для большинства задач, связанных с работой в сети. В таких случаях рекомендуется использовать более высокоуровневые библиотеки, такие как http.client или urllib.request .

Python ТОП 10 крутейших библиотек!
Python requests http, https запросы, requests методы get и post, подключаемся к api через python
Работа с сетью в Python: Socket и HTTP. Python Advanced. Урок 1
Основы NumPy Python — Массивы, Матрицы И Операции Над Ними
Работа с HTTP в Python. Библиотека requests. Модули в Python
Python с нуля. Урок 8 — Модули
Язык программирования Python — что на нем пишут, сколько за него платят
5 Лучших Библиотек Для Программирования На Python — Библиотеки Которые Должен Знать Каждый
#5. Математические функции и работа с модулем math — Python для начинающих

BLGPG-75F9CEFCBF26-23-12-09-16
Новые материалы:
- Deque методы python
- Python тип данных bytes
- Игры на pyqt
- Maximum recursion depth exceeded while calling a python object что значит
- Асинхронные фреймворки python
- Обращение фрагмента python
- Мешок слов python
- Python виртуальная машина
- Перевод кода из python в c
- Даны катеты прямоугольного треугольника найти его периметр python
КАКОЙ МОДУЛЬ СТАНДАРТНОЙ БИБЛИОТЕКИ PYTHON ПОЗВОЛЯЕТ РАБОТАТЬ С WWW НА БОЛЕЕ НИЗКОМ УРОВНЕ
Стандартная библиотека Python содержит модуль socket , который предоставляет возможность работать с сетью на низком уровне. Этот модуль позволяет осуществлять прямой доступ к сокетам, используемым для передачи данных по сети.
Чтобы выполнить HTTP-запрос, необходимо установить соединение с сервером, сформировать HTTP-запрос и отправить его. В следующем примере показано, как выполнить GET-запрос к серверу Google:
import socket
s = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
s.connect((‘www.google.com’, 80))
s.sendall(b’GET / HTTP/1.1\r\nHost: www.google.com\r\n\r\n’)
data = s.recv(1024)
s.close()
print(repr(data))
В этом примере мы создаем сокет и устанавливаем соединение с сервером Google на порту 80. Затем мы отправляем GET-запрос, запросив содержимое корневой страницы. Наконец, мы получаем ответ от сервера и закрываем соединение с сокетом.
Хотя модуль socket предоставляет возможность осуществлять прямой доступ к сокетам, использование этого модуля может быть достаточно сложным для большинства задач, связанных с работой в сети. В таких случаях рекомендуется использовать более высокоуровневые библиотеки, такие как http.client или urllib.request .

Python ТОП 10 крутейших библиотек!
Python requests http, https запросы, requests методы get и post, подключаемся к api через python
Работа с сетью в Python: Socket и HTTP. Python Advanced. Урок 1
Основы NumPy Python — Массивы, Матрицы И Операции Над Ними
Работа с HTTP в Python. Библиотека requests. Модули в Python
Python с нуля. Урок 8 — Модули
Язык программирования Python — что на нем пишут, сколько за него платят
5 Лучших Библиотек Для Программирования На Python — Библиотеки Которые Должен Знать Каждый
#5. Математические функции и работа с модулем math — Python для начинающих

BLGPG-75F9CEFCBF26-23-12-09-16
Новые материалы:
- Deque методы python
- Python тип данных bytes
- Игры на pyqt
- Maximum recursion depth exceeded while calling a python object что значит
- Асинхронные фреймворки python
- Обращение фрагмента python
- Мешок слов python
- Python виртуальная машина
- Перевод кода из python в c
- Даны катеты прямоугольного треугольника найти его периметр python
Python: Стандартная библиотека
Python поставляется с набором полезных функций, которые составляют стандартную библиотеку. Обычно в нее входят тысячи функций, которые невозможно запомнить. Поэтому программист должен знать, где найти документацию по этим функциям, а также представлять результат, который хочет получить. По этим причинам программировать без интернета сложно.
Новички часто не понимают, как и где узнавать про функции, которые нужно использовать. При этом нет способа, который поможет решить эту проблему. По мере работы разработчики становятся опытнее, пополняют свой багаж знаний и практик. Постепенно они знакомятся с более интересными функциями, которые решают их задачи по-другому.
Вот советы, которые помогут повысить уровень профессионализма:
- Всегда отслеживайте, с каким типом данных вы работаете. Так вы найдете необходимую функцию в соответствующем разделе документации. Например, для работы со строками нужно изучать строковые функции
- Периодически открывайте раздел со стандартными функциями по вашей тематике, изучайте сигнатуры и способы использования.
- Чаще читайте чужой код на GitHub. Особенное внимание обращайте на код библиотек, которые используете
Если следовать этим советам и внимательно относиться к деталям, то уже скоро вы заметите, как развиваетесь и растете как профессионал.
Задание
Функция type() позволяет определить тип передаваемого аргумента. Название типа возвращается в виде строки. Например, вызов type(10) вернёт строку (int, это сокращение от integer — целое число).
print(type('wow')) #
Выведите на экран тип значения переменной motto .
Упражнение не проходит проверку — что делать?
Если вы зашли в тупик, то самое время задать вопрос в «Обсуждениях». Как правильно задать вопрос:
- Обязательно приложите вывод тестов, без него практически невозможно понять что не так, даже если вы покажете свой код. Программисты плохо исполняют код в голове, но по полученной ошибке почти всегда понятно, куда смотреть.
В моей среде код работает, а здесь нет
Тесты устроены таким образом, что они проверяют решение разными способами и на разных данных. Часто решение работает с одними входными данными, но не работает с другими. Чтобы разобраться с этим моментом, изучите вкладку «Тесты» и внимательно посмотрите на вывод ошибок, в котором есть подсказки.
Мой код отличается от решения учителя
Это нормально , в программировании одну задачу можно выполнить множеством способов. Если ваш код прошел проверку, то он соответствует условиям задачи.
В редких случаях бывает, что решение подогнано под тесты, но это видно сразу.
Прочитал урок — ничего не понятно
Создавать обучающие материалы, понятные для всех без исключения, довольно сложно. Мы очень стараемся, но всегда есть что улучшать. Если вы встретили материал, который вам непонятен, опишите проблему в «Обсуждениях». Идеально, если вы сформулируете непонятные моменты в виде вопросов. Обычно нам нужно несколько дней для внесения правок.
Кстати, вы тоже можете участвовать в улучшении курсов: внизу есть ссылка на исходный код уроков, который можно править прямо из браузера.
Полезное
- Справочник функций Python
- Как искать техническую информацию
Определения
- Стандартная библиотека — набор полезных функций, входящий в комплект поставки языка программирования.
Стандартная библиотека¶
Стандартная библиотека Python содержит огромное количество полезных модулей и является частью стандартного комплекта поставки Python. Ознакомиться со стандартной библиотекой Python очень важно, так как множество задач можно решить очень быстро, если вы знакомы с возможностями этих библиотек.
Рассмотрим некоторые наиболее часто используемые модули этой библиотеки. Детальное описание всех модулей стандартной библиотеки Python можно найти в разделе «Library Reference» документации, входящей в комплект поставки Python.
Давайте изучим несколько полезных модулей.
Если темы в настоящей главе покажутся вам слишком сложными, вы можете её пропустить. Однако я настоятельно рекомендую вернуться к этой главе, когда вы будете чувствовать себя более уверенно с Python.
Модуль sys¶
Модуль sys содержит функциональность, характерную для системы. Так мы видели, что список sys.argv содержит аргументы командной строки.
Предположим, нам нужно узнать версию используемой команды Python с тем, чтобы, к примеру, убедиться в том, что мы используем как минимум версию 3. Модуль sys предоставляет такую возможность.
>>> import sys >>> sys.version_info (3, 0, 0, 'beta', 2) >>> sys.version_info[0] >= 3 True
Как это работает:
Модуль sys содержит кортеж version_info , который хранит информацию о версии. Первый элемент этого кортежа обозначает старшую версию. Мы можем использовать его, например, для того, чтобы убедиться, что программа будет выполняться только в Python 3.0:
Сохраните как versioncheck.py :
import sys, warnings if sys.version_info[0] 3: warnings.warn("Для выполнения этой программы необходима как минимум \ версия Python 3.0", RuntimeWarning) else: print('Нормальное продолжение')
Вывод:
$ python2.7 versioncheck.py versioncheck.py:6: Для выполнения этой программы необходима как минимум версия Python 3.0 RuntimeWarning) $ python3 versioncheck.py Нормальное продолжение
Как это работает:
Мы используем один из модулей стандартной библиотеки, который называется warnings и служит для отображения предупреждений пользователю. Если версия Python менее 3, мы показываем соответствующее предупреждение.
Модуль logging¶
Представьте ситуацию, когда необходимо сохранить некоторые отладочные или другие важные сообщения где-нибудь, чтобы иметь возможность позже проверить, отработала ли программа, как ожидалось. Как мы «сохраним где-нибудь» эти сообщения? Сделать это можно при помощи модуля logging .
Сохраните как use_logging.py :
import os, platform, logging if platform.platform().startswith('Windows'): logging_file = os.path.join(os.getenv('HOMEDRIVE'), os.getenv('HOMEPATH'), 'test.log') else: logging_file = os.path.join(os.getenv('HOME'), 'test.log') print("Сохраняем лог в", logging_file) logging.basicConfig( level=logging.DEBUG, format='%(asctime)s : %(levelname)s : %(message)s', filename = logging_file, filemode = 'w', ) logging.debug("Начало программы") logging.info("Какие-то действия") logging.warning("Программа умирает")
Вывод:
$ python3 use_logging.py Сохраняем лог в C:\Users\swaroop\test.log
Если открыть файл test.log , он будет выглядеть примерно так:
2012-10-26 16:52:41,457 : DEBUG : Начало программы 2012-10-26 16:52:41,474 : INFO : Какие-то действия 2012-10-26 16:52:41,475 : WARNING : Программа умирает
Как это работает:
Мы использовали три модуля из стандартной библиотеки: модуль os для взаимодействия с операционной системой, модуль platform для получения информации о платформе (т.е. операционной системе) и модуль logging для сохранения лога 1 .
Прежде всего, при помощи строки, возвращаемой функцией platform.platform() мы проверяем, какая операционная система используется (для более подробной информации см. import platform; help(platform) ). Если это Windows, то мы определяем диск, содержащий домашний каталог, путь к домашнему каталогу на нём и имя файла, в котором хотим сохранить информацию. Сложив все эти три части, мы получаем полный путь к файлу. Для других платформ нам нужно знать только путь к домашнему каталогу пользователя, и мы получим полный путь к файлу.
При помощи функции os.path.join() мы объединяем три части пути к файлу вместе. Мы используем эту функцию вместо простого объединения строк для того, чтобы гарантировать, что полный путь к файлу записан в формате, ожидаемом операционной системой.
Далее мы конфигурируем модуль logging таким образом, чтобы он записывал все сообщения в определённом формате в указанный файл.
Наконец, мы можем выводить сообщения, предназначенные для отладки, информирования, предупреждения и даже критические сообщения. После выполнения программы можно просмотреть этот файл и узнать, что происходило в программе, хотя пользователю, запустившему программу, ничего не было показано.
Модули urllib и json¶
#!/usr/bin/python # Filename: yahoo_search.py import sys if sys.version_info[0] != 3: sys.exit('This program needs Python 3.0') import json import urllib, urllib.parse, urllib.request, urllib.response # Get your own APP ID at http://developer.yahoo.com/wsregapp/ YAHOO_APP_ID = 'jl22psvV34HELWhdfUJbfDQzlJ2B57KFS_qs4I8D0Wz5U5_yCI1Awv8.lBSfPhwr' SEARCH_BASE = 'http://search.yahooapis.com/WebSearchService/V1/webSearch' class YahooSearchError(Exception): pass # Taken from http://developer.yahoo.com/python/python-json.html def search(query, results=20, start=1, **kwargs): kwargs.update( 'appid': YAHOO_APP_ID, 'query': query, 'results': results, 'start': start, 'output': 'json' >) url = SEARCH_BASE + '?' + urllib.parse.urlencode(kwargs) result = json.load(urllib.request.urlopen(url)) if 'Error' in result: raise YahooSearchError(result['Error']) return result['ResultSet'] query = input('What do you want to search for? ') for result in search(query)['Result']: print(" : ".format(result['Title'], result['Url']))
Резюме¶
Мы изучили лишь некоторые возможности некоторых модулей стандартной библиотеки Python. Я настоятельно рекомендую просмотреть документацию по стандартной библиотеке Python, чтобы увидеть все доступные модули.
Далее мы обратимся к некоторым аспектам, которые сделают вашу экскурсию по Python более «завершённой».
- log — англ. «журнал», «вести журнал» (прим.перев.) ↩