Я относительный новый питон, я пытаюсь html.parser как пара:
from html.parser import HTMLParser
import urllib.request
class TestParser(HTMLParser):
def handle_starttag(self, tag, attrs):
print("Start Tag: ", tag, attrs)
def handle_endtag(self, tag):
print("End Tag: ", tag)
def handle_data(self, data):
print("Data: ", data)
def handle_startendtag(self,tag,attrs):
print("StarEnd Tag: ", tag, attrs)
class DanParser(HTMLParser):
def __init__(self):
super(DanParser, self).__init__(strict = False)
self.in_select = False
def handle_starttag(self, tag, attrs):
print("Start Tag: ", tag, attrs)
if tag == "select":
self.in_select = True
print("Start Tag: ", tag, attrs)
def handle_endtag(self, tag):
print("EndTag: ", tag)
if tag == "select" and self.in_select:
self.in_select = False
print("EndTag: ", tag)
def handle_data(self, data):
print("Data: ", data)
if self.in_select:
print("Data: ", data)
def handle_startendtag(self,tag,attrs):
print("StarEnd Tag: ", tag, attrs)
Когда я делаю в переводчике
t = new DanParser()
t.feed("<select>test</select>")
я получаю:
Data: <select>
Data: test
EndTag: select
метод handle_starttag не был вызван, но когда я делаю это, используя TestParser, он ведет себя правильно.
Может кто-нибудь сказать мне, что я делаю не так !!!
спасибо