all Python 3urllib.requestterm
urllib.request.OpenerDirector
openers
The dispatcher behind urlopen(): it keeps a chain of handlers and picks the one that opens a request by its URL scheme.
Syntax
opener = urllib.request.OpenerDirector(); opener.add_handler(handler)
For every request it calls the handlers' <scheme>_request, <scheme>_open and <scheme>_response methods. You almost never create it directly: a bare OpenerDirector() knows no schemes and silently returns None for an unhandled URL instead of raising. build_opener() adds UnknownHandler and the standard handlers — use it instead.
Examples
import urllib.request
bare = urllib.request.OpenerDirector()
bare.add_handler(urllib.request.DataHandler())
print(bare.open('data:,hi').read()) # → b'hi'
print(bare.open('file:///nonexistent')) # → None
See also
Open in the full glossarydocs.python.orgReport an inaccuracy