解析 HTML -- SGMLParser
来源:互联网 发布:mac导入照片到ipad 编辑:程序博客网 时间:2024/05/01 07:32
- #coding:utf-8
- from sgmllib import SGMLParser
- class GetIdList(SGMLParser):
- def reset(self):
- self.IDlist=[]
- self.flag=False
- self.getdata=False
- self.verbatim = 0
- SGMLParser.reset(self)
- def start_div(self,attrs):
- if self.flag==True:
- self.verbatim+=1 #进入子层div了,层数+1
- for k,v in attrs:
- if k=="class" and v=="entry-content":#确定进入了<div class='entry-content'>
- self.flag=True
- def end_div(self):#遇到</div>
- if self.verbatim==0:
- self.flag=False
- if self.flag==True:#退出子层div了,层数减 1
- self.verbatim-=1
- def start_p(self,attrs):
- if self.flag==False:
- return
- self.getdata=True
- def end_p(self):#遇到</p>
- if self.getdata:
- self.getdata=False
- def handle_data(self,text):#处理文本
- if self.getdata:
- self.IDlist.append(text)
- def printID(self):
- for i in self.IDlist:
- print i.decode("utf-8")
- if __name__ == '__main__':
- the_page ='''''<html>
- <head>
- <title>test</title>
- </head>
- <body>
- <h1>title</h1>
- <div class='entry-content'>
- <p>感兴趣内容1</p>
- <p>感兴趣内容2</p>
- ……
- <p>感兴趣内容n</p>
- <div class='entry-content'>我是来捣乱的2<div class= 'ooxx'>我是来捣乱的3</div></div>
- </div>
- <div class='content'>
- <p>内容1</p>
- <p>内容2</p>
- ……
- <p>内容n</p>
- </div>
- </body>
- </html>
- '''
- gid=GetIdList()
- gid.feed(the_page)
- gid.printID()
- gid.close()
结果:
感兴趣内容2
感兴趣内容n
引自:
小练习 SGMLParser 解析 HTML
0 0
- 解析 HTML -- SGMLParser
- #小练习 SGMLParser 解析 HTML
- 用python解析html[SGMLParser]
- 用python解析html--SGMLParser
- python:解析html(HTMLParser、SGMLParser)
- python:解析html(HTMLParser、SGMLParser)
- 解析html的python库--SGMLParser
- python学习笔记三:解析html(HTMLParser、SGMLParser),并抓取图片
- python网页解析之SGMLParser
- SGMLParser
- SGMLParser
- SGMLParser
- html分析工作SGMLParser的常见问题及解决方案
- Python SGMLParser简介
- #小练习 SGMLParser练习
- SGMLParser (二)
- Python爬虫--SGMLParser
- HTML 解析
- 【MatConvNet】配置GPU
- Android性能优化典范——GPU渲染(Profile GPU Rendering)
- keil编译不能生成“.HEX”的解决方法
- visual studio 调试时提示 已加载“C:\Windows\SysWOW64\ntdll.dll”。无法查找或打开 PDB 文件。
- 使用maven一步一步构建spring mvc项目
- 解析 HTML -- SGMLParser
- 热修复框架Tinker的从0到集成之路
- 生产环境elasticsearch5.0.1集群的部署配置详解
- BFS入门-A计划
- linux系统——目录,目录项,索引节点(i node)的关系
- 建立live555海思编码推流服务
- Maven构建springMVC
- 算法竞赛入门经典 习题2-6 调和级数(harmony)
- A*B Problem