Отчасти связано с моим предыдущим вопросом.Я делаю простой HTML-парсер, чтобы поиграться с ним в Python 2.7.Я хотел бы иметь несколько типов анализа, IE может анализировать ссылки, теги сценария, изображения и т. Д.Я использую модуль HTMLParser, поэтому мои первоначальные мысли были просто создать отдельный класс для каждой вещи, которую я хочу проанализировать.Но это казалось довольно глупым.Есть ли способ сделать это без создания нескольких классов?Я больше знаком с C #, поэтому я решил, что просто передам параметр в методе init , чтобы указать, что именно нужно анализировать, точно так же, как в .Net, однако мне кажется, чтоделай это правильно.Это не работает, и это просто «не выглядит» правильно.Вот текущий рабочий код: как бы я изменил это, чтобы у меня мог быть только один класс, и передаваемые параметры указывают тип HTML-тегов для анализа?
class LinksParser(HTMLParser):
def __init__(self, url):
HTMLParser.__init__(self)
req = urllib2.urlopen(url)
self.feed(req.read())
def handle_starttag(self, tag, attrs):
if tag !='a': return
for name, value in attrs:
print("Found Link --> [{0}]{1}".format(name, value))