object-oriented programming program input output figure program to run thisdownload the beautifulsoup zip file and unzip it in the same directory as this file import urllib requesturllib parseurllib error from bs import beautifulsoup import ssl ignore ssl certificate errors ctx ssl create_default_context(ctx check_hostname false ctx verify_mode ssl cert_none url input('enter 'html urllib request urlopen(urlcontext=ctxread(soup beautifulsoup(html'html parser'retrieve all of the anchor tags tags soup(' 'for tag in tagsprint(tag get('href'none)codewe read the url into string and then pass that into urllib to retrieve the data from the web the urllib library uses the socket library to make the actual network connection to retrieve the data we take the string that urllib returns and hand it to beautifulsoup for parsing beautifulsoup makes use of the object html parser and returns an object we call the tags(method on the returned object that returns dictionary of tag objects we loop through the tags and call the get(method for each tag to print out the href attribute we can draw picture of this program and how the objects work together the key here is not to understand perfectly how this program works but to see how we build network of interacting objects and orchestrate the movement of information between the objects to create program it is also important to note that when you looked at that program several backyou could fully understand what was going on in the program without even realizing that the