I think the problem is that you aren't using classes correctly. Try something like:
class Parser(object):
def __init__(self, url):
...
def download_page(self):
...
Then use:
parser = Parser(url) # create instance of the class
parser.download_page() # call instance method
At the moment, you are trying to call download_page
on the class, not an instance.
That said, when you have a class with "two methods, one of which is __init__
" you should probably stop writing classes.