`

Python 用HTMLParser解析HTML文件

阅读更多

Python 用HTMLParser解析HTML文件

HTMLParser是Python自带的模块,使用简单,能够很容易的实现HTML文件的分析。
本文主要简单讲一下HTMLParser的用法. 

使用时需要定义一个从类HTMLParser继承的类,重定义函数:

  • handle_starttag( tag, attrs)
  • handle_startendtag( tag, attrs)
  • handle_endtag( tag)

来实现自己需要的功能。

tag是的html标签,attrs是 (属性,值)元组(tuple)的列表(list). 
HTMLParser自动将tag和attrs都转为小写。

下面给出的例子抽取了html中的所有链接:

from HTMLParser import HTMLParser
 
class MyHTMLParser(HTMLParser):
    def __init__(self):
        HTMLParser.__init__(self)
        self.links = []
 
    def handle_starttag(self, tag, attrs):
        #print "Encountered the beginning of a %s tag" % tag
        if tag == "a":
            if len(attrs) == 0: pass
            else:
                for (variable, value)  in attrs:
                    if variable == "href":
                        self.links.append(value)
 
if __name__ == "__main__":
    html_code = """
    <a href="www.google.com"> google.com</a>
    <A Href="www.pythonclub.org"> PythonClub </a>
    <A HREF = "www.sina.com.cn"> Sina </a>
    """
    hp = MyHTMLParser()
    hp.feed(html_code)
    hp.close()
    print(hp.links)

输出为:

['www.google.com', 'www.pythonclub.org', 'www.sina.com.cn']

如果想抽取图形链接

<img src='http://www.google.com/intl/zh-CN_ALL/images/logo.gif' />

就要重定义 handle_startendtag( tag, attrs) 函数

分享到:
评论

相关推荐

    htmlparser(HTML页面解析)例子

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

    python解析html的几种方法

    `HTMLParser`不支持XPath或CSS,但它可以通过自定义事件处理函数来解析HTML并执行特定的操作。以下是一个基本示例: ```python from html.parser import HTMLParser class MyHTMLParser(HTMLParser): def handle_...

    htmlparser解析html分页

    HTMLParser是一个用于解析HTML文档的库,尤其在处理非结构化或不标准的HTML时非常有用。这个库可能被用于从网页中提取数据,比如在爬虫项目中,或者进行自动化测试时解析页面内容。本篇文章将深入探讨HTMLParser的...

    使用HTMLParser解析网页,找出文章后下载保存

    总结来说,使用HTMLParser解析网页涉及到以下步骤: 1. 继承`HTMLParser`并重写相关方法以定义解析逻辑。 2. 找到文章内容所在的标签,如`&lt;p&gt;`或`&lt;article&gt;`,并在适当的方法中处理它们。 3. 收集文章文本,并在适当...

    HtmlParser

    HTMLParser是用于解析HTML文档的一种工具或库,尤其在网络爬虫技术中扮演着关键角色。网络爬虫,也称为网络蜘蛛或Web抓取器,是一种自动浏览互联网并收集信息的程序。它广泛应用于搜索引擎优化、数据分析、市场研究...

    HtmlParser用于将HTML转换为PugJinja2和Blade模板的交互式工具

    Pug使用缩进表示元素层级,用函数和变量来插入动态内容。例如,一个简单的HTML段落在Pug中可能写成`p My paragraph.` **Jinja2** Jinja2是Python中的一个模板引擎,广泛应用于Flask和Django等Web框架。它提供了丰富...

    python 解析url

    综上所述,Python解析URL涉及使用`urllib`或`requests`库获取网页内容,然后利用`BeautifulSoup`、`lxml`或自定义的`HTMLParser`类解析HTML,提取所需信息。`BaseHTMLProcessor.py`、`dialect.py`和`MyHTMLParser.py...

    HTMLParser抽取Web网页正文信息.doc

    HTMLParser是一种用于解析HTML文档的工具,特别适用于从Web网页中提取有用的信息。它能够有效地识别和解析HTML标签,帮助开发者从复杂的网页结构中抽取特定的数据。在实际应用中,HTMLParser不仅能够处理标准的HTML...

    htmlparser

    HTMLParser是一个用于解析HTML文档的库,它在编程领域中扮演着重要的角色,尤其是在处理网页内容和数据抓取时。这个库提供了API,允许开发者解析HTML文档,提取所需信息,或者对HTML进行修改。以下是对HTMLParser库...

    HTMLparser用法示例

    HTMLparser是Python内置的一个解析HTML和XML文档的模块,它为处理HTML或XML文档提供了基本的事件驱动的解析器。这个模块主要用于从不规范的HTML文档中提取数据,因为网络上的HTML文档往往不完全符合标准,所以需要一...

    HTMLParser抽取Web网页正文信息

    在使用HTMLParser时,首先需要从指定的源下载HTMLParser的jar文件,如`http://HTMLParser.sourceforge.net/`,并将该jar添加到项目的类路径中。接着,通过创建`Parser`对象并传入HTML文本或URL,即可启动解析过程。...

    MZnauka-2_htmlparser_zip_

    8. 不同的HTML解析库:介绍不同编程语言中的HTML解析库,比如Python的BeautifulSoup,Java的Jsoup等,以及它们的特点和使用方法。 通过这个课程,学习者将能够熟练掌握HTML解析技术,理解其背后的逻辑,并能有效地...

    提取网页内容的源码(htmlparser)

    HTMLParser是Python中一个用于解析HTML和XML文档的库,它允许我们以编程的方式处理网页的源代码,从中获取我们需要的信息。 首先,我们要理解HTML(HyperText Markup Language)是构成网页的基本语言,包含了各种...

    python,html,内容提取过滤器

    BeautifulSoup是一个用于解析HTML和XML文档的Python库,它通过创建一个解析树来表示整个文档结构,使得我们可以方便地遍历和搜索这个树,从而提取所需内容。例如,你可以通过元素的tag名、class属性或者ID来找到特定...

    Python 网页解析HTMLParse的实例详解

    Python 提供了多种工具和技术来处理 HTML 和 XML 文档,其中 `HTMLParser` 是一个轻量级且易于使用的解析库。本文将详细介绍 `HTMLParser` 的基本原理及其在网页解析中的应用。 #### 一、HTMLParser 模块简介 `...

    python lxml3.8.0 源包

    `lxml`是Python中一个强大的XML和HTML处理库,它结合了C语言的`libxml2`和`libxslt`库,提供了高速、高效的XML和HTML解析、生成以及XPath、XSLT的支持。在Python生态中,lxml因其出色的性能和丰富的功能而被广泛使用...

    利用Python爬取百度百科词条

    接着是`HtmlParser.py`,这是解析HTML文档的关键部分。Python提供了多个库用于HTML解析,如BeautifulSoup和lxml。在这个项目中,这个模块可能使用这些库解析从网页下载的HTML内容,提取出我们需要的百度百科词条的...

    适用python3.7的优质多个库安装包合集

    - **HTMLParser**:一个简单的HTML解析器,可能用于处理和解析HTML文档。 - **sklearn**:即scikit-learn的另一个名字,可能是一个较旧的版本。 - **PySide2** 和 **scipy** 的不同版本:提供了对不同Python版本的...

Global site tag (gtag.js) - Google Analytics