Документация по Python

Библиотека urllib

В: Документация по Python

Введение

Примеры

HTTP GET

Python 2#

import urllib
response = urllib.urlopen('http://stackoverflow.com/documentation/')

Использование urllib.urlopen() вернет объект ответа, который можно обрабатывать аналогично файлу.

print response.code
# Prints: 200

Код response.code представляет собой возвращаемое значение http. 200 в порядке, 404 - NotFound и т. Д.

print response.read()
'<!DOCTYPE html>\r\n<html>\r\n<head>\r\n\r\n<title>Documentation - Stack. etc'

response.read() и response.readlines() могут использоваться для чтения фактического файла html, возвращенного из запроса. Эти методы работают аналогично file.read*

Python 3.x 3.0

Python 3#

import urllib.request

print(urllib.request.urlopen("http://stackoverflow.com/documentation/"))
# Prints: <http.client.HTTPResponse at 0x7f37a97e3b00>

response = urllib.request.urlopen("http://stackoverflow.com/documentation/")

print(response.code)
# Prints: 200
print(response.read())
# Prints: b'<!DOCTYPE html>\r\n<html>\r\n<head>\r\n\r\n<title>Documentation - Stack Overflow</title> 

Модуль обновлен для Python 3.x, но варианты использования остаются в основном одинаковыми. urllib.request.urlopen вернет аналогичный файл-подобный объект.

HTTP POST

To POST data pass the encoded query arguments as data to urlopen()

Python 2.x2.7

Python 2

import urllib
query_parms = {'username':'stackoverflow', 'password':'me.me'}
encoded_parms = urllib.urlencode(query_parms)
response = urllib.urlopen("https://codecamp.ru/users/login", encoded_parms)
response.code
# Output: 200
response.read()
# Output: '<!DOCTYPE html>\r\n<html>\r\n<head>\r\n\r\n<title>Log In - Stack Overflow'

Python 3.x3.0

Python 3

import urllib
query_parms = {'username':'stackoverflow', 'password':'me.me'}
encoded_parms = urllib.parse.urlencode(query_parms).encode('utf-8')
response = urllib.request.urlopen("https://codecamp.ru/users/login", encoded_parms)
response.code
# Output: 200
response.read()
# Output: b'<!DOCTYPE html>\r\n<html>....etc'

Decode received bytes according to content type encoding

The received bytes have to be decoded with the correct character encoding to be interpreted as text:

Python 3.x3.0

import urllib.request

response = urllib.request.urlopen("https://codecamp.ru/")
data = response.read()

encoding = response.info().get_content_charset()
html = data.decode(encoding)

Python 2.x2.7

import urllib2
response = urllib2.urlopen("https://codecamp.ru/")
data = response.read()

encoding = response.info().getencoding()
html = data.decode(encoding)

Синтаксис

Параметры

Примечания

Еще от кодкамп
Замечательно! Вы успешно подписались.
Добро пожаловать обратно! Вы успешно вошли
Вы успешно подписались на кодкамп.
Срок действия вашей ссылки истек.
Ура! Проверьте свою электронную почту на наличие волшебной ссылки для входа.
Успех! Ваша платежная информация обновлена.
Ваша платежная информация не была обновлена.