`
qindongliang1922
  • 浏览: 2183855 次
  • 性别: Icon_minigender_1
  • 来自: 北京
博客专栏
7265517b-f87e-3137-b62c-5c6e30e26109
证道Lucene4
浏览量:117531
097be4a0-491e-39c0-89ff-3456fadf8262
证道Hadoop
浏览量:125921
41c37529-f6d8-32e4-8563-3b42b2712a50
证道shell编程
浏览量:59907
43832365-bc15-3f5d-b3cd-c9161722a70c
ELK修真
浏览量:71301
社区版块
存档分类
最新评论

Python3.4网页解析之HTMLParse

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


现在一个模拟的html文件:
<html> <title id='main' mouse='你好'>我是标题</title><body>我是内容</body>   </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("<html> <title id='main' mouse='你好'>我是标题</title><body>我是内容</body>   </html>")

p.close()


运行结果如下:

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



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


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






分享到:
评论

相关推荐

    基于java的开发源码-HTML文档解析器 HTMLParser.zip

    基于java的开发源码-HTML文档解析器 HTMLParser.zip 基于java的开发源码-HTML文档解析器 HTMLParser.zip 基于java的开发源码-HTML文档解析器 HTMLParser.zip 基于java的开发源码-HTML文档解析器 HTMLParser.zip 基于...

    htmlparser(HTML页面解析)例子

    HTMLParser是Python中用于解析HTML文档的一个库,它允许开发者以事件驱动的方式处理HTML文档的结构。这个库特别适用于从不规范的HTML源码中提取数据,因为网页内容的格式可能会因各种原因而不尽完美。在本例中,我们...

    Html解析助手htmlparser.jar

    2. **创建解析器**:通过实例化解析器类,如`HtmlParser`,并设置相应的解析模式和配置。 3. **解析HTML**:调用解析器的`parse`方法,传入HTML源码或输入流,开始解析过程。 4. **处理解析事件**:注册事件处理器,...

    HTML文档解析器 HTMLParser

    总之,HTMLParser是网页解析过程中的关键组件,理解和掌握其工作原理对于提升前端开发技能和优化网页性能具有重要意义。通过学习和实践,我们可以更好地应对HTML解析带来的挑战,从而创造出更加高效、易用的网页应用...

    Python HTML解析模块HTMLParser用法分析【爬虫工具】

    本文实例讲述了Python HTML解析模块HTMLParser用法。分享给大家供大家参考,具体如下: 简介 先简略介绍一下。实际上,HTMLParser是python用来解析HTML的内置模块。它可以分析出HTML里面的标签、数据等等,是一种...

    Python HTMLParser模块解析html获取url实例

    主要介绍了Python HTMLParser模块解析html获取url实例,HTMLParser是python用来解析html的模块,HTMLParser采用的是一种事件驱动的模式,需要的朋友可以参考下

    android 解析html (htmlParser)库和源码

    因为一个项目需要解析一个网站上的新闻,所以找到了htmlParser这个开源的项目,删除了一些不需要的包,使其可以在android上用。 有两个工程,myhtml是库,要把它包含到dwParser(android工程)工程中,就可以直接...

    java解析html工具htmlparser的jar包及api文档

    总的来说,HTMLParser是一个强大的工具,它允许开发者以编程的方式处理HTML,无论是为了数据提取、网页抓取还是其他需要解析HTML的场景。通过其API文档,开发者可以深入学习和利用这个库,实现更复杂的HTML处理任务...

    基于Java的实例开发源码-HTML文档解析器 HTMLParser.zip

    在IT行业中,HTML文档解析是处理网页数据的关键技术之一,特别是在进行网络爬虫、数据分析或者自动化测试时。这个"基于Java的实例开发源码-HTML文档解析器 HTMLParser.zip"提供了一个具体的实现,帮助开发者更好地...

    JAVA源码HTML文档解析器HTMLParser

    JAVA源码HTML文档解析器HTMLParser

    htmlparser_Java网页解析器

    HTMLParser是一款用于Java开发的网页解析库,它允许开发者高效地提取和处理HTML文档中的数据。在Web开发中,尤其是在爬虫程序或者自动化测试中,HTMLParser是一个非常实用的工具。下面将详细介绍HTMLParser库的核心...

    java资源HTML文档解析器HTMLParser

    java资源HTML文档解析器 HTMLParser提取方式是百度网盘分享地址

    python解析html的几种方法

    Python在处理HTML文档时提供了多种方法,这些方法可以帮助开发者有效地解析和提取网页中的信息。本文将详细介绍其中的几种主要技术,包括lxml、XPath、HTMLParser以及SGMLParser。 首先,`lxml`是一个强大的库,它...

    基于Java的HTML文档解析器 HTMLParser.zip

    2. **数据挖掘**:在进行网页数据挖掘时,可以利用HTMLParser解析HTML,提取有价值的结构化数据。 3. **HTML清洗**:对于从网络上获取的不规范的HTML,HTMLParser可以用来清理和标准化HTML代码。 4. **自动化测试*...

    HTML文档解析器 HTMLParser.7z

    HTML文档解析器是一款用于处理和解析HTML文档的工具,它能够帮助开发者有效地分析网页结构,提取所需信息。在这个名为"HTMLParser.7z"的压缩包中,包含的文件是"HTMLParser-2.0-SNAPSHOT",这通常表示一个软件库或...

    java源码:HTML文档解析器 HTMLParser.rar

    java源码:HTML文档解析器 HTMLParser.rar

    python html parser

    本篇将详细介绍Python中的HTMLParser库及其核心概念。 一、HTMLParser库介绍 Python的标准库中包含了一个名为`html.parser`的模块,它提供了对HTML和基本XML的解析功能。这个解析器是基于事件驱动的,这意味着它会...

    基于java的HTML文档解析器 HTMLParser.zip

    HTMLParser是一个基于Java的库,专门用于...总的来说,`HTMLParser.zip`提供的工具和API使得Java开发者能够有效地处理HTML文档,无论这些文档是否规范,从而在各种应用场景中实现数据提取、内容处理和网页解析的需求。

    基于Java的源码-HTML文档解析器 HTMLParser.zip

    在Java开发中,尤其是在网页抓取、信息提取或者自动化测试等领域,HTMLParser是一个非常实用的工具。 HTMLParser的核心功能包括: 1. **DOM解析**:它使用类似于XML的DOM(Document Object Model)模型来解析HTML...

Global site tag (gtag.js) - Google Analytics