python3 解析html
来源:互联网 发布:wtybill 知乎 编辑:程序博客网 时间:2024/06/10 01:48
解析html模块 html.parser.HTMLParser
a).要自己实现一个HTMLParser的子类对自己所需要的标签进行处理
class MyHTMLParser(HTMLParser):
def __init__(sefl):
HTMLParser.__init__(sefl):
//...自定义初始化方法,可以进行一些初始化
def handle_starttag(self,tag,attrs):
//...
def handle_endtag(self,tag):
//...
def handle_data(self,data):
//....
def handle_entityref(self,name):
//处理实体
class ParserHTML(HTMLParser):"""
解析html页面
字典interestTag 对哪些标签进行解析 {"要查找的标签":{"根据属性再次过滤标签":"对应属性的值","MATCH_ATTR":"要得到的属性"}}
"""
def __init__(self,interestTag={}):
HTMLParser.__init__(self)
self.interestTag = interestTag
def handle_starttag(self, tag,attrs):
#处理标签 tag是标签 attrs是标签内的属性
if {} == self.interestTag:
print("return")
return
for targetTag,value in self.interestTag.items():
if tag == targetTag:
for targetTagAttrName,targetTagAttrValue in value.items():
if "MATCH_ATTR" != targetTagAttrName:
matchAttr = value.get("MATCH_ATTR","")
if "" == matchAttr:
raise RuntimeError("要匹配的属性不能为空")
for attr in attrs:
#attr包含属性的元组 (属性名,属性值)
if targetTagAttrName == attr[0] and targetTagAttrValue == attr[1]:
for tr in attrs:
if matchAttr == tr[0]:
#这里取得标签里指定属性的值
download4Urllib(tr[1],tr[1][tr[1].rfind('/')+1:],"G:/image")
测试:parser = ParserHTML({"img":{"class":"BDE_Image","MATCH_ATTR":"src"}})
parser.feed('<div id="post_content_48081892290" class="d_post_content j_d_post_content "> <img class="BDE_Image" id="img" src="http://imgsrc.baidu.com/forum/w%3D580/sign=c699c69638f33a879e6d0012f65d1018/4fd2c6faaf51f3dea72ffcc296eef01f3b29793f.jpg" pic_ext="jpeg" width="541" height="750" data-pinit="registered" style="cursor: url(http://tb2.bdstatic.com/tb/static-pb/img/cur_zin.cur), pointer;"></div>')
0 0
- Python3 HTML 解析器
- python3 解析html
- python3 文件解析模块(html,email等说明)
- Python3 html获取
- Python3爬虫从入门到自残(二):HTML及其解析
- python3.2 解析JSON
- python3 解析xml文件
- python3 解析json数据
- python3解析XML文件
- python3+xlrd解析Excel
- Python3 JSON 数据解析
- Python3 JSON 数据解析
- python3系列-爬虫解析
- Python3:抓取网页HTML代码
- python3 爬虫 HTML 指定内容
- Python3怎样生成Html测试报告
- HTML 解析
- html 解析
- Using MSYS with MinGW
- Quartz 框架 教程(中文版)2.2.x 之第九课 JobStores
- UVA 1529 - Clock(数论)
- &#x是什么编码以及转换方法(GB2312 UNICODE)
- 正反斜杠 点 在传参过程中
- python3 解析html
- SQL Server优化50法
- SSH向Dao接口的实现类中用注解和声明方式注入创建HibernateTemplate对象
- nyoj-830-旋转坐标系
- 光流场法介绍及代码
- itext in action英文版教程demo中关于Hsqldb的设置
- MVC中的过滤器
- 浅谈C++多态性
- Android--桌面组件AppWidget