这道题涉及比较多的知识需要额外补充,我尝试做一个小结供跟我一样的小白参考:
1、HTMLParser的handle_starttag(self, tag, attrs)里面的attrs是一个列表list,这点跟XMLParser的start_element(self, name, attrs)的attrs不同,后者的attrs是一个字典dict,这个是需要注意的。 2、在定义类的初始化动作的时候,def __init__(self)里面必须要有HTMLParser.__init__(self),意思是显式调用父类(或者叫基类)的方法和属性,因为python的派生类初始化的时候不会自动调用父类或基类的方法和属性的,如果没有这句,在feed的时候就会出现rawdata错误,说我们自己定义的类没有rawdata属性,这是一个大坑。 3、如果要用到dict,那么必须注意到dict是可变对象,所以在将dict追加到list的时候,必须先将dict转变为str,然后再用eval转化回dict(我这个方法可能比较笨,不知道有没有更好的处理方法)。
Sign in to make a reply
gd83594394
这道题涉及比较多的知识需要额外补充,我尝试做一个小结供跟我一样的小白参考: