Python, create a network request
New Courses Coming Soon
Join the waiting lists
Python offers us the urllib
standard library package to create network requests.
Create a request using:
from urllib import request
url = 'https://dog.ceo/api/breeds/list/all'
response = request.urlopen(url)
content = response.read()
print(content)
You can also use the with
statement to simplify
from urllib import request
url = 'https://dog.ceo/api/breeds/list/all'
with request.urlopen(url) as response:
content = response.read()
print(content)
The response is a sequence of bytes, as you will notice because the response is wrapped in a b''
string:
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.
Here is how can I help you:
- COURSES where I teach everything I know
- CODING BOOTCAMP cohort course - next edition in 2025
- THE VALLEY OF CODE your web development manual
- BOOKS 17 coding ebooks you can download for free on JS Python C PHP and lots more
- Interesting links collection
- Follow me on X