Python3.4网页解析之HTMLParse

阅读更多
使用python将网页抓取下来之后,下一步我们就应该解析网页,提取我们所需要的内容了,在python里提供了一个简单的解析模块HTMLParser类,使用起来也是比较简单的,解析语法没有用到XPath类似的简洁模式,但新手用起来还是比较容易的,看下面的例子:


现在一个模拟的html文件:
 我是标题我是内容   


需求是,提取出标题的属性值,以及内容:

代码如下:
import html.parser as h



class MyHTMLParser(h.HTMLParser):
    a_t=False
    def handle_starttag(self, tag, attrs):
        #print("开始一个标签:",tag)
        print()
        if str(tag).startswith("title"):
            print(tag)
            self.a_t=True
            for attr in attrs:
                print("   属性值:",attr)

    def handle_endtag(self, tag):
        if tag == "title":
            self.a_t=False
            #print("结束一个标签:",tag)

    def handle_data(self, data):
        if self.a_t is True:
            print("得到的数据: ",data)



p=MyHTMLParser()

p.feed(" 我是标题我是内容   ")

p.close()


运行结果如下:

title
   属性值: ('id', 'main')
   属性值: ('mouse', '你好')
得到的数据:  我是标题



主要的技术就是继承了HTMLParser类,然后重写了里面的一些方法,来完成自己的业务,从上面的代码里,发现如果想获取某个标签的内容,还是比较麻烦的,当然这是python里面最简单的html解析方式,还有很多其他组件,scrapy等等,里面支持Xpath路径解析,使用起来非常简洁清爽。


解析代码学会之后,我们就可以将使用urllib包,抓取到的数据交给htmlparser解析,从而提取出我们所需要的内容。






你可能感兴趣的:(python,html,python抓取解析)