html分析python字典_#小练习 解析HTML文件并使用字典保存链接 分类: ...

#coding:utf-8

from HTMLParser import HTMLParser

import pprint

class myhtml(HTMLParser):

def __init__(self):

HTMLParser.__init__(self)

self.d={}

self.flag=None

self.value=None

#解析html声明

def handle_decl(self,declaration):

print 'Declaration:',declaration

#解析开始标签

def handle_starttag(self,tag,attrs):

print 'Start tag:',tag

if tag=='a':

#如果tag是“a”,则添加标识flag=‘a’,处理链接数据时,判断是否tag为‘a’

self.flag='a'

if len(attrs)==0:pass

else:

for key,value in attrs:

if key=='href':

self.value=value

#解析结束标签

def handle_endtag(self,tag):

print 'End tag:',tag

#解析注释标签

def handle_comment(self,comm):

print 'Comment:',comm

#解析数据

def handle_data(self,data):

#添加flag=‘a’判断,否则字典中会增加'test': None 项

if self.flag=='a' and data.strip():#

## print 'Data:',data

self.d[data.strip()]=self.value

print data.decode('utf-8')

else:

## print 'Data:',data

pass

if __name__ == '__main__':

a = '''\

test

163.com

goolge.com \

PythonClub

sina

'''

m=myhtml()

m.feed(a)

m.close()

print m.d

结果:

Declaration: DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"

Start tag: html

Start tag: head

Comment: insert javaScript here!

Start tag: title

End tag: title

Start tag: body

Start tag: a

163.com

End tag: a

Start tag: a

goolge.com

End tag: a

Start tag: a

PythonClub

End tag: a

Start tag: a

sina

End tag: a

End tag: body

End tag: html

{'goolge.com': 'www.google.com', 'PythonClub': 'www.pythonclub.org', '163.com': 'http: //www.163.com', 'sina': 'www.sina.com.cn'}

版权声明:本文为博主原创文章,未经博主允许不得转载。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值