python 解析html文档 html.parse

8 篇文章 0 订阅

解析html文档,采用html.parser  库

```
#1 导入库,
from html.parser import HTMLParser
from html.entities import name2codepoint
#2 创建具体处理文档的类,继承HTML
#里面的方法必须重写,方法名不可以随便变化,否则无法处理。
class MyHTMLParser(HTMLParser):
    #处理开始标签,参数为标签和属性列表。
    def handle_starttag(self,tag,attrs):
        print('开始---',tag)
        for attr in attrs:
            print('属性',attr)
    #处理结束标签,参数为 标签
    def handle_endtag(self,tag):
        print('结束...',tag)
    #处理数据,数据是开始标签和结束标签的所有内容
    #默认处理所有标签的数据。
    #所以具体使用的使用,请在开始标签和结束标签处理方法中
    #设计一些属性来检测是否位于我们所希望的标签内部
    def handle_data(self,data):
        print('数据+++',data)
    #处理注释,参数是data,是猪似的内容.
    def handle_comment(self,data):
        print('This is zhu shi ',data)
    #处理一些声明,doctype  html.开头标记
    def handle_decl(self, decl):
        print('-'*50,decl,'-'*50)
    #处理实体字符,name参数是文档中所有的实体字符,chr()方法,将实体字符转化为字符串一种是英文表示的 ,
    def handle_entityref(self,name):
        c=chr(name2codepoint[name])
        print('entityref:',c)
    #处理殊字符有两种,一种是数字表示的Ӓ,这两种字符都可以通过Parser解析出来
    def handle_charref(self, name):
        if name.startswith() == 'x':
            c=chr(int(name[1:],16))
        else:
            c=chr(int(name))
        print('Num ent :',c)
#创建解析对象
parser=MyHTMLParser()

with open('Text文本格式.html','r') as f:
    for line in f.readlines():
        #调用解析对象的read方法进行解释,参数是字符串feed()方法可以多次调用,也就是不一定一次把整个HTML字符串都塞进去,可以一部分一部分塞进去.
        parser.feed(line)    
```

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值