我是相对新的 python 我正在尝试 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 执行它时,它的行为正确。谁能告诉我我做错了什么!!!谢谢