Python, crea una solicitud de red

Python nos ofrece laurllibpaquete de biblioteca estándar para crear solicitudes de red.

Crea una solicitud usando:

from urllib import request
url = 'https://dog.ceo/api/breeds/list/all'

response = request.urlopen(url) content = response.read()

print(content)

También puede utilizar elwithdeclaración para simplificar

from urllib import request
url = 'https://dog.ceo/api/breeds/list/all'

with request.urlopen(url) as response: content = response.read()

print(content)

La respuesta es una secuencia de bytes, como notará porque la respuesta está envuelta en unb''cuerda:

b'{"message":{"affenpinscher":[],"african":[],"airedale":[],"akita":[],"appenzeller":[],"australian":["shepherd"],"basenji":[],"beagle":[],"bluetick":[],"borzoi":[],"bouvier":[],"boxer":[],"brabancon":[],"briard":[],"buhund":["norwegian"],"bulldog":["boston","english","french"]},"status":"success"}'

Decode it to a UTF-8 encoded string using content.decode('utf-8')

This gets the HTML content from my website flavicopes.com:

from urllib import request

url = ‘https://flaviocopes.com

with request.urlopen(url) as response: content = response.read().decode(‘utf-8’)

print(content)

You can parse the response as JSON, using the json standard library module:

from urllib import request
import json

url = https://dog.ceo/api/breeds/list/all

with request.urlopen(url) as response: content = response.read()

data = json.loads(content) print(data[‘status’])

If you need to specify query parameters, use the urllib.parse() method to build the query string:

from urllib import request, parse
url = 'https://api.thecatapi.com/v1/images/search'

parms = { ‘limit’ : 5, ‘page’ : 1, ‘order’ : ‘Desc’ }

querystring = parse.urlencode(parms)

with request.urlopen(url + ‘?’ + querystring) as response: content = response.read().decode(‘utf-8’)

print(content)

This is the built-in urllib package.

For convenience purposes, you might want to use the requests package, not part of the Python standard library but quite popular.


More python tutorials: