python的html模块,python模块之HTMLParser

HTMLParser是python用来解析html的模块。它可以分析出html里面的标签、数据等等,是一种处理html的简便途径。 HTMLParser采用的是一种事件驱动的模式,当HTMLParser找到一个特定的标记时,它会去调用一个用户定义的函数,以此来通知程序处理。它 主要的用户回调函数的命名都是以handler_开头的,都是HTMLParser的成员函数。当我们使用时,就从HTMLParser派生出新的类,然 后重新定义这几个以handler_开头的函数即可。这几个函数包括:

handle_startendtag  处理开始标签和结束标签

handle_starttag     处理开始标签,比如

handle_endtag       处理结束标签,比如

handle_charref      处理特殊字符串,就是以开头的,一般是内码表示的字符

handle_entityref    处理一些特殊字符,以&开头的,比如  

handle_data         处理数据,就是data中间的那些数据

handle_comment      处理注释

handle_decl         处理

handle_pi           处理形如<?instruction>的东西

这里我以从网页中获取到url为例,介绍一下。要想获取到url,肯定是要分析标签,然后取到它的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':

# 判断标签的属性

for name,value in attrs:

if name == 'href':

print value

if __name__ == '__main__':

a = '

test 链接到163'

my = MyParser()

# 传入要分析的数据,���html的。

my.feed(a)

如果是python3的,导入为 form html.request import HTMLParser ,具体可以参考http://docs.python.org/library/htmlparser.html

执行结果

http://www.163.com

python模块介绍- HTMLParser 简单的HTML和XHTML解析器

python模块介绍- HTMLParser 简单的HTML和XHTML解析器 2013-09-11 磁针石 #承接软件自动化实施与培训等gtalk:ouyangchongwu#gmail.comqq ...

python模块之HTMLParser&lpar;原理很大程度上就是对类构造的熟练运用&rpar;

# -*- coding: utf-8 -*- #python 27 #xiaodeng #python模块之HTMLParser(原理很大程度上就是对类构造的熟练运用) import HTMLPar ...

python模块之HTMLParser之穆雪峰的案例&lpar;理解其用法原理&rpar;

# -*- coding: utf-8 -*- #python 27 #xiaodeng #python模块之HTMLParser之穆雪峰的案例(理解其用法原理) #http://www.cnblog ...

python模块之HTMLParser抓页面上的所有URL链接

# -*- coding: utf-8 -*- #python 27 #xiaodeng #python模块之HTMLParser抓页面上的所有URL链接 import urllib #MyParse ...

python模块之HTMLParser解析出URL链接

# -*- coding: utf-8 -*- #python 27 #xiaodeng #python模块之HTMLParser解析出URL链接 #http://www.cnblogs.com/mf ...

python模块学习---HTMLParser&lpar;解析HTML文档元素&rpar;

HTMLParser是Python自带的模块,使用简单,能够很容易的实现HTML文件的分析. 本文主要简单讲一下HTMLParser的用法. 使用时需要定义一个从类HTMLParser继承的类,重定义 ...

python模块之HTMLParser简介

html.parser是一个非常简单和实用的库,它的核心是HTMLParser类. 工作的流程是:当你feed给它一个类似HTML格式的字符串时,它会调用goahead方法向前迭代各个标签,并调用对应 ...

python模块使用案例

python模块使用案例 一.使用MySQLdb模块代码示例: # 导入 MySQLdb模块 import MySQLdb # 和服务器建立链接,host是服务器ip,我的MySQL数据库搭建在本机, ...

python模块大全

python模块大全2018年01月25日 13:38:55 mcj1314bb 阅读数:3049 pymatgen multidict yarl regex gvar tifffile jupyte ...

随机推荐

C&plus;&plus;中的静态绑定和动态绑定

C++在面向对象编程中,存在着静态绑定和动态绑定的定义,本节即是主要讲述这两点区分.我是在一个类的继承体系中分析的,因此下面所说的对象一般就是指一个类的实例.首先我们需要明确几个名词定义: 静态类型: ...

CodeForces Round 192 Div2

This is the first time I took part in Codeforces Competition.The only felt is that my IQ was contemp ...

ACM1996

/* 汉诺塔VI Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 65536/32768 K (Java/Others)Total Su ...

spring学习笔记之spring框架本质

Spring框架的本质是,开发者在Spring配置文件中使用XML元素进行配置,实际驱动Spring执行相应的代码: 使用元素,实际启动Spring执行无参或有参构造函 ...

shell脚本获取mysql插入数据自增长id的值

shell脚本获取mysql插入数据自增长id的值 在shell脚本中我们可以通过last_insert_id()获取id值,但是,需要注意的是,该函数必须在执行插入操作的sql语句之后,立即调用,否 ...

委托异步调用时BeginInvoke的陷阱处理

这个陷阱来自于一个需求:需要异步在后台处理数据,处理完后触发处理完成的事件,大概是这么写的: EmployeeCollection data = new EmployeeCollection(): d ...

java-输出格式

https://docs.oracle.com/javase/tutorial/java/data/numberformat.html Formatting Numeric Print Output ...

JavaScript 比较和逻辑运算符

比较和逻辑运算符用于测试 true 或者 false. 比较运算符 比较运算符在逻辑语句中使用,以测定变量或值是否相等. 给定 x=5,下面的表格解释了比较运算符: 实例 »实例 » 大于 大于或等于 ...

day44 数据库学习 索引 引用自egon 老师博客

MySQL索引管理 总结 #索引是存在硬盘中的, #索引的功能, 1.可以加速查询 2.但是他会降低写入和删除的速度 所以不能乱加索引 总结二 1 最左前缀匹配原则 2设置的索引,它的字段中的内容占空 ...

Hadoop源码阅读-HDFS-day1

HDFS声明及构造函数 @InterfaceAudience.Private @InterfaceStability.Evolving public class Hdfs extends Abstra ...

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值