For the error:
TypeError: takes exactly 1 argument (2 given)
With the following class method:
def extractAll(tag): ... <
If a non-static method is member of a class, you have to define it like that:
def Method(self, atributes..)
So, I suppose your 'e' is instance of some class with implemented method that tries to execute and has too much arguments.