`
swingfly
  • 浏览: 53582 次
  • 性别: Icon_minigender_1
  • 来自: 成都
社区版块
存档分类
最新评论

python模块之HTMLParser: 解析html,获取url

阅读更多

HTMLParser是python用来解析html的模块。它可以分析出html里面的标签、数据等等,是一种处理html的简便途径。 HTMLParser采用的是一种事件驱动的模式,当HTMLParser找到一个特定的标记时,它会去调用一个用户定义的函数,以此来通知程序处理。它 主要的用户回调函数的命名都是以handler_开头的,都是HTMLParser的成员函数。当我们使用时,就从HTMLParser派生出新的类,然 后重新定义这几个以handler_开头的函数即可。这几个函数包括:
handle_startendtag  处理开始标签和结束标签
handle_starttag     处理开始标签,比如<xx>
handle_endtag       处理结束标签,比如</xx>
handle_charref      处理特殊字符串,就是以&#开头的,一般是内码表示的字符
handle_entityref    处理一些特殊字符,以&开头的,比如 &nbsp;
handle_data         处理数据,就是<xx>data</xx>中间的那些数据
handle_comment      处理注释
handle_decl         处理<!开头的,比如<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
handle_pi           处理形如<?instruction>的东西
    这里我以从网页中获取到url为例,介绍一下。要想获取到url,肯定是要分析<a>标签,然后取到它的href属性的值。下面是代码:

# -*- encoding: gb2312 -*-
import  HTMLParser

class  MyParser(HTMLParser.HTMLParser):
    
def   __init__ (self):
        HTMLParser.HTMLParser.
__init__ (self)        
        
    
def  handle_starttag(self, tag, attrs):
        
#  这里重新定义了处理开始标签的函数
         if  tag  ==   ' a ' :
            
#  判断标签<a>的属性
             for  name,value  in  attrs:
                
if  name  ==   ' href ' :
                    
print  value
        

if   __name__   ==   ' __main__ ' :
    a 
=   ' <html><head><title>test</title><body><a href="http: //www.163.com">链接到163</a></body></html> '
    
    my 
=  MyParser()
    
#  传入要分析的数据,是html的。
    my.feed(a)
    
    
分享到:
评论

相关推荐

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

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

    htmlparser(HTML页面解析)例子

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

    python 解析url

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

    htmlparser解析html分页

    HTMLParser是Python标准库中的一个模块,它提供了一个基础的事件驱动的HTML解析器。这个解析器并不尝试理解HTML的语义,而是将HTML文档分解成一系列的标记事件,如开始标签、结束标签、字符数据等。开发者可以注册...

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

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

    Python所有的库都在这里了!!强烈建议收藏.docx

    1. dateutil:标准的 Python 官方 datetime 模块的扩展包,字符串日期工具,其中 parser 是根据字符串解析成 datetime,而 rrule 是则是根据定义的规则来生成 datetime。 2. arrow:更好的日期和时间处理 Python 库...

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

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

    Python常见第三方库

    37. BeautifulSoup和lxml:HTML和XML解析器,用于网页抓取和解析,lxml还具有修复破损HTML的能力。 38. htmlparser:Python官方提供的HTML DOM树解析器,有时用于命令行交互。 39. pyyaml:Python的YAML解释器,...

    python爬虫实战,多线程爬取京东

    - **Python标准库**:如`os`用于文件操作,`HTMLParser`用于解析HTML文档,`httplib`用于发送HTTP请求等。 - **多线程技术**:通过`threading`模块实现并发处理,提高爬虫效率。 #### 四、代码逻辑说明 项目的整体...

    HtmlParser爬取气象信息实例

    HTMLParser是中国Python社区中一个流行的库,用于解析HTML和XML文档。这个实例是关于如何使用HTMLParser库来抓取和处理气象信息的。在Web开发和数据抓取领域,了解如何解析HTML页面对于获取网络上的结构化数据至关...

    利用Python爬取百度百科词条

    这个模块通常包含了启动爬虫、调用URL管理器获取URL、使用HTML解析器处理网页内容以及调用数据输出模块保存结果等功能。`SpiderMan.py`是整个爬虫程序的协调者,确保各个组件协同工作。 `DataOutput.py`负责处理...

    1000+常用Python库大全.docx

    - BeautifulSoup:HTML/XML解析器。 - lxml:快速且强大的HTML和XML处理器。 - htmlparser:官方HTML DOM树解析器。 - pyyaml:Python YAML解析器。 - html5lib:解析和序列化HTML文档。 - pyquery:类似...

    基于Python爬虫原理的篮球鞋选择程序的设计与实现.pdf

    Beautiful Soup 支持多种解析器,包括 Python 内置的 HTMLParser 和 lxml 的 HTML 解析器等。其主要特点包括: - **简洁易用**:提供了直观的方式来导航、搜索和修改解析树。 - **强大的查找功能**:可以使用 CSS ...

    Python request

    在Python中,我们通常用`lxml`的`etree`或`html`模块来解析HTML内容: ```python from lxml import etree parser = etree.HTMLParser() tree = etree.fromstring(html_content, parser) element = tree.xpath('//...

    python爬虫实战.docx

    - 使用`HTMLParser`类解析HTML文档时可能会遇到一些特殊字符导致解析失败的情况。 - 需要在解析前对HTML文本进行预处理,例如去除或替换掉一些非法字符。 ##### 4. 图片保存策略 - 对于爬取的大量图片,为了便于...

    python之——使用python编写爬虫脚本

    总之,编写Python爬虫需要理解整个爬虫流程,包括URL的获取、HTML的下载、数据的解析以及结果的存储。Python提供了丰富的库如`urllib`、`BeautifulSoup`等,使得构建爬虫变得相对简单。然而,实际应用中还需考虑反爬...

    廖雪峰Python3.5教程(不带标签)

    - **HTMLParser**:解析HTML文档。 - **urllib**:处理URL请求。 #### 常用第三方模块 - **PIL**:图像处理库。 - **virtualenv**:创建独立的Python环境。 - **图形界面**:使用Tkinter等库开发GUI应用程序。 - **...

    python standerd labrary中文版

    - 本书旨在全面介绍Python标准库中的各个模块及其用法。 - 适合所有水平的Python开发者,无论是初学者还是有经验的程序员都能从中受益。 - **代码约定** - 本书中的代码遵循Python的标准编码风格,如PEP 8规范,...

Global site tag (gtag.js) - Google Analytics