Автор оригинала: Pankaj Kumar.
Всем привет и добро пожаловать в еще одну учебную статью по Python 3. В этой статье мы обсуждаем библиотеку urllib Python, которая является частью стандартных библиотечных модулей.
Идея Python urllib заключается в том, что он позволяет вам делать всевозможные удивительные вещи, которые позволяет Интернет с помощью простого программирования.
Итак, с этим давайте начнем.
содержание
- Импорт urllib Python
- Доступ к веб-сайту с помощью модуля Python urllib
- 1. ПОЛУЧИТЬ запрос на доступ к веб-сайту
- 2. Разместите запрос на доступ к веб-сайту
- Вывод
Импорт urllib Python
Первое, что вам нужно будет сделать, это импортировать URLlib.
Теперь, если вы исходите из python 2.7, вы привыкли просто импортировать urllib, и все.
import urllib
В то время как с Python 3 и далее вам придется импортировать пакет запроса из urllib.
import urllib.request
Доступ к веб-сайту с помощью модуля Python urllib
Таким образом, пример посещения веб-сайта будет следующим.
1. ПОЛУЧИТЬ запрос на доступ к веб-сайту
x = urllib.request.urlopen('https://www.google.com')
Мы определим переменную x, вызовем метод urlopen и укажем URL-адрес веб-сайта.
Теперь это будет служить HTTP-запросом GET для получения данных из URL-адреса. Мы будем использовать read() для получения данных.
print(x.read())
Приведенный выше фрагмент кода возвращает исходный код страницы google.com. Он возвращает все содержимое страницы, такое как html-теги и атрибуты стиля на консоли python.
Однако, как пользователь, вы можете не быть заинтересованы в получении исходного кода страницы и требовать только текстовые данные.
Как обычный пользователь, вы перейдете в строку поиска на таких сайтах, как python.org
и укажите контент, который вы хотите найти, и нажмите кнопку отправить.
Вы заметили, что URL-адрес в адресной строке меняется на URL-адрес, показанный ниже. Этот URL-адрес содержит некоторые ? и &, которые являются параметрами запроса.
https://www.python.org/search/?q=urllib&submit=
Для вашего дальнейшего понимания, то ? и & – это поисковые запросы, которые вы предоставляете в строке поиска, и они публикуются по URL-адресу. Вы можете сделать запрос POST на этот URL-адрес, чтобы получить содержимое. Но что, если вам придется опубликовать его из python?
2. Разместите запрос на доступ к веб-сайту
Помимо модуля запроса, мы также импортируем модуль синтаксического анализа, так как это поможет нам проанализировать значения в нашем запросе.
import urllib.request as rq import urllib.parse as ps
Чтобы лучше понять запрос post, мы будем использовать python.org веб-сайт. Мы определим словарь, и в нем будут ключи, являющиеся “параметрами поиска”, а значения будут ключевыми словами.
url='https://www.python.org/search/' dictionary = { 'q': 'urllib' } data = ps.urlencode(dictionary) data = data.encode('utf-8') req = rq.Request(url,data) res = rq.urlopen(req) print(res.read())
После указания параметров URL важно понимать, что во всемирной паутине используется стандартная кодировка utf-8. Поэтому мы преобразуем наш URL-адрес в закодированный контент.
Затем мы передадим наш URL-адрес и закодированные данные в объект req и выдадим запрос и urlopen на это. Ответ для urlopen хранится в объекте res.
Это связано с тем, что веб-сайт, который мы разместили здесь, не предоставляет нам доступ к их контенту без использования API. Мы можем использовать RESTFUL API или некоторые другие заголовки для извлечения данных. Мы не будем обсуждать это в этой статье.
Мы по – прежнему получаем всю веб-страницу, включая все HTML-теги, в консоль python.
Вывод
Надеюсь, вы поняли, как выдавать запросы HTTP GET и HTTP POST браузеру и сайтам с использованием python. Пожалуйста, сообщите нам о своих отзывах в разделе комментариев, а также упомяните любые другие темы, которые вы хотели бы прочитать.