SGMLParser类里面包含了很多内部方法,开始读取html后,遇到相应的数据就会调用其对应的方法,最重要的方法有三个:
- start_tagname(self, attrs)
- end_tagname(self)
- handle_data(self, text)
#coding:utf-8from sgmllib import SGMLParserclass myhp(SGMLParser): def reset(self): self.l=[] self.getdata=False self.flag=False SGMLParser.reset(self) def start_div(self,attrs): for k,v in attrs: if k=='class' and v=='entry-content':#进入div,设置flag=True self.flag=True def start_p(self,attrs): self.getdata=True #进入,设置getdata=True def end_p(self): self.getdata=False def handle_data(self,data): if self.flag and self.getdata:#获取
标签的数据 self.l.append(data) print data.decode("utf-8") def end_div(self): self.flag=Falseif __name__ == '__main__': the_page ='''
test title
感兴趣内容1
感兴趣内容2
……感兴趣内容n
捣乱兴趣
我是来捣乱的2我是来捣乱的3''' m=myhp() m.feed(the_page) m.close()内容1
内容2
……内容n
结果:
感兴趣内容1 感兴趣内容2 感兴趣内容n 内容1 内容2 内容n
版权声明:本文为博主原创文章,未经博主允许不得转载。