HTMLParser是python用来解析html的模块。它可以分析出html里面的标签、数据等等,是一种处理html的简便途径。
HTMLParser采用的是一种事件驱动的模式,当HTMLParser找到一个特定的标记时,它会去调用一个用户定义的函数,以此来通知程序处理。它
主要的用户回调函数的命名都是以handler_开头的,都是HTMLParser的成员函数。当我们使用时,就从HTMLParser派生出新的类,然
后重新定义这几个以handler_开头的函数即可。这几个函数包括:
handle_startendtag 处理开始标签和结束标签
handle_starttag 处理开始标签,比如<xx>
handle_endtag 处理结束标签,比如</xx>
handle_charref 处理特殊字符串,就是以&#开头的,一般是内码表示的字符
handle_entityref 处理一些特殊字符,以&开头的,比如
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实例,HTMLParser是python用来解析html的模块,HTMLParser采用的是一种事件驱动的模式,需要的朋友可以参考下
HTMLParser是Python中用于解析HTML文档的一个库,它允许开发者以事件驱动的方式处理HTML文档的结构。这个库特别适用于从不规范的HTML源码中提取数据,因为网页内容的格式可能会因各种原因而不尽完美。在本例中,我们...
综上所述,Python解析URL涉及使用`urllib`或`requests`库获取网页内容,然后利用`BeautifulSoup`、`lxml`或自定义的`HTMLParser`类解析HTML,提取所需信息。`BaseHTMLProcessor.py`、`dialect.py`和`MyHTMLParser.py...
HTMLParser是Python标准库中的一个模块,它提供了一个基础的事件驱动的HTML解析器。这个解析器并不尝试理解HTML的语义,而是将HTML文档分解成一系列的标记事件,如开始标签、结束标签、字符数据等。开发者可以注册...
本文实例讲述了Python HTML解析模块HTMLParser用法。分享给大家供大家参考,具体如下: 简介 先简略介绍一下。实际上,HTMLParser是python用来解析HTML的内置模块。它可以分析出HTML里面的标签、数据等等,是一种...
1. dateutil:标准的 Python 官方 datetime 模块的扩展包,字符串日期工具,其中 parser 是根据字符串解析成 datetime,而 rrule 是则是根据定义的规则来生成 datetime。 2. arrow:更好的日期和时间处理 Python 库...
总结来说,使用HTMLParser解析网页涉及到以下步骤: 1. 继承`HTMLParser`并重写相关方法以定义解析逻辑。 2. 找到文章内容所在的标签,如`<p>`或`<article>`,并在适当的方法中处理它们。 3. 收集文章文本,并在适当...
37. BeautifulSoup和lxml:HTML和XML解析器,用于网页抓取和解析,lxml还具有修复破损HTML的能力。 38. htmlparser:Python官方提供的HTML DOM树解析器,有时用于命令行交互。 39. pyyaml:Python的YAML解释器,...
- **Python标准库**:如`os`用于文件操作,`HTMLParser`用于解析HTML文档,`httplib`用于发送HTTP请求等。 - **多线程技术**:通过`threading`模块实现并发处理,提高爬虫效率。 #### 四、代码逻辑说明 项目的整体...
HTMLParser是中国Python社区中一个流行的库,用于解析HTML和XML文档。这个实例是关于如何使用HTMLParser库来抓取和处理气象信息的。在Web开发和数据抓取领域,了解如何解析HTML页面对于获取网络上的结构化数据至关...
这个模块通常包含了启动爬虫、调用URL管理器获取URL、使用HTML解析器处理网页内容以及调用数据输出模块保存结果等功能。`SpiderMan.py`是整个爬虫程序的协调者,确保各个组件协同工作。 `DataOutput.py`负责处理...
- BeautifulSoup:HTML/XML解析器。 - lxml:快速且强大的HTML和XML处理器。 - htmlparser:官方HTML DOM树解析器。 - pyyaml:Python YAML解析器。 - html5lib:解析和序列化HTML文档。 - pyquery:类似...
Beautiful Soup 支持多种解析器,包括 Python 内置的 HTMLParser 和 lxml 的 HTML 解析器等。其主要特点包括: - **简洁易用**:提供了直观的方式来导航、搜索和修改解析树。 - **强大的查找功能**:可以使用 CSS ...
在Python中,我们通常用`lxml`的`etree`或`html`模块来解析HTML内容: ```python from lxml import etree parser = etree.HTMLParser() tree = etree.fromstring(html_content, parser) element = tree.xpath('//...
- 使用`HTMLParser`类解析HTML文档时可能会遇到一些特殊字符导致解析失败的情况。 - 需要在解析前对HTML文本进行预处理,例如去除或替换掉一些非法字符。 ##### 4. 图片保存策略 - 对于爬取的大量图片,为了便于...
总之,编写Python爬虫需要理解整个爬虫流程,包括URL的获取、HTML的下载、数据的解析以及结果的存储。Python提供了丰富的库如`urllib`、`BeautifulSoup`等,使得构建爬虫变得相对简单。然而,实际应用中还需考虑反爬...
- **HTMLParser**:解析HTML文档。 - **urllib**:处理URL请求。 #### 常用第三方模块 - **PIL**:图像处理库。 - **virtualenv**:创建独立的Python环境。 - **图形界面**:使用Tkinter等库开发GUI应用程序。 - **...
- 本书旨在全面介绍Python标准库中的各个模块及其用法。 - 适合所有水平的Python开发者,无论是初学者还是有经验的程序员都能从中受益。 - **代码约定** - 本书中的代码遵循Python的标准编码风格,如PEP 8规范,...