Python2.7 使用HTMLParser简单解析HTML

直接上代码:

import HTMLParser
class MyHTMLParser(HTMLParser.HTMLParser):   
    def __init__(self):   
        HTMLParser.HTMLParser.__init__(self)   
        self.links = []   
    def handle_starttag(self, tag, attrs):   
        #print "Encountered the beginning of a %s tag" % tag   
        if tag == "li":   
            if len(attrs) == 0:   
                pass   
            else:   
                for (variable, value) in attrs:   
                    if variable == "data-cityid":   
                        self.links.append(value)   
                     
if __name__ == "__main__":   
    html_code = """ <ul class="open-context"><li data-cityid="76" data-cityname="广州" class="open-context-item">广州</li><li data-cityid="77" data-cityname="深圳" class="open-context-item active">深圳</li><li data-cityid="52" data-cityname="北京" class="open-context-item">北京</li><li data-cityid="321" data-cityname="上海" class="open-context-item">上海</li><li data-cityid="180" data-cityname="武汉" class="open-context-item">武汉</li><li data-cityid="192" data-cityname="咸宁" class="open-context-item">咸宁</li><li data-cityid="220" data-cityname="南京" class="open-context-item">南京</li><li data-cityid="221" data-cityname="苏州" class="open-context-item">苏州</li><li data-cityid="222" data-cityname="无锡" class="open-context-item">无锡</li><li data-cityid="235" data-cityname="赣州" class="open-context-item">赣州</li><li data-cityid="244" data-cityname="沈阳" class="open-context-item">沈阳</li><li data-cityid="245" data-cityname="大连" class="open-context-item">大连</li><li data-cityid="284" data-cityname="青岛" class="open-context-item">青岛</li><li data-cityid="322" data-cityname="成都" class="open-context-item">成都</li><li data-cityid="343" data-cityname="天津" class="open-context-item">天津</li><li data-cityid="144" data-cityname="廊坊" class="open-context-item">廊坊</li><li data-cityid="111" data-cityname="贵阳" class="open-context-item">贵阳</li><li data-cityid="53" data-cityname="福州" class="open-context-item">福州</li><li data-cityid="60" data-cityname="厦门" class="open-context-item">厦门</li><li data-cityid="78" data-cityname="潮州" class="open-context-item">潮州</li><li data-cityid="79" data-cityname="东莞" class="open-context-item">东莞</li><li data-cityid="80" data-cityname="佛山" class="open-context-item">佛山</li><li data-cityid="82" data-cityname="惠州" class="open-context-item">惠州</li><li data-cityid="83" data-cityname="江门" class="open-context-item">江门</li><li data-cityid="86" data-cityname="梅州" class="open-context-item">梅州</li><li data-cityid="92" data-cityname="云浮" class="open-context-item">云浮</li><li data-cityid="95" data-cityname="中山" class="open-context-item">中山</li><li data-cityid="96" data-cityname="珠海" class="open-context-item">珠海</li><li data-cityid="97" data-cityname="南宁" class="open-context-item">南宁</li><li data-cityid="383" data-cityname="杭州" class="open-context-item">杭州</li></ul>"""   
    hp = MyHTMLParser()   
    hp.feed(html_code)   
    hp.close()   
    print(hp.links)  


注:2.7和3.0以上import方法不一样,上述为2,7引用;3.0以上用from html.parser import HTMLParser

def handle_starttag(self, tag, attrs)根据实际需求修改此函数

  • 2
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值