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


Posted in Python onApril 08, 2015

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 相关文章推荐
Python网站验证码识别
Jan 25 Python
安装Python和pygame及相应的环境变量配置(图文教程)
Jun 04 Python
Python利用matplotlib.pyplot绘图时如何设置坐标轴刻度
Apr 09 Python
Python中asyncio与aiohttp入门教程
Oct 16 Python
python pandas实现excel转为html格式的方法
Oct 23 Python
python如何制作缩略图
Apr 30 Python
Python_查看sqlite3表结构,查询语句的示例代码
Jul 17 Python
Python2比较当前图片跟图库哪个图片相似的方法示例
Sep 28 Python
利用python在excel中画图的实现方法
Mar 17 Python
python 爬虫基本使用——统计杭电oj题目正确率并排序
Oct 26 Python
Python实现一个论文下载器的过程
Jan 18 Python
一行Python命令实现批量加水印
Apr 07 Python
python内存管理分析
Apr 08 #Python
Python中关于字符串对象的一些基础知识
Apr 08 #Python
Python MySQLdb模块连接操作mysql数据库实例
Apr 08 #Python
python单例模式实例分析
Apr 08 #Python
在Docker上部署Python的Flask框架的教程
Apr 08 #Python
python threading模块操作多线程介绍
Apr 08 #Python
Python使用scrapy采集数据时为每个请求随机分配user-agent的方法
Apr 08 #Python
You might like
封装一个PDO数据库操作类代码
2009/09/09 PHP
yii2学习教程之5种内置行为类详解
2017/08/03 PHP
thinkPHP框架实现多表查询的方法
2018/06/14 PHP
laravel框架添加数据,显示数据,返回成功值的方法
2019/10/11 PHP
Javascript Global对象
2009/08/13 Javascript
JQuery防止退格键网页后退的实现代码
2012/03/23 Javascript
jquery实现按Enter键触发事件示例
2013/09/10 Javascript
再谈javascript原型继承
2014/11/10 Javascript
深入理解js generator数据类型
2016/08/16 Javascript
JavaScript 是什么意思
2016/09/22 Javascript
Bootstrap中点击按钮后变灰并显示加载中实例代码
2016/09/23 Javascript
Vue.js双向绑定实现原理详解
2016/12/22 Javascript
JS库之Highlight.js的用法详解
2017/09/13 Javascript
vue脚手架及vue-router基本使用
2018/04/09 Javascript
vue+express 构建后台管理系统的示例代码
2018/07/19 Javascript
Vue-router的使用和出现空白页,路由对象属性详解
2018/09/03 Javascript
JavaScript继承与聚合实例详解
2019/01/22 Javascript
javascript设计模式 ? 职责链模式原理与用法实例分析
2020/04/16 Javascript
python基础教程之对象和类的实际运用
2014/08/29 Python
Python实现遍历数据库并获取key的值
2015/05/17 Python
Python中字符串格式化str.format的详细介绍
2017/02/17 Python
Python之自动获取公网IP的实例讲解
2017/10/01 Python
浅谈python迭代器
2017/11/08 Python
django从请求到响应的过程深入讲解
2018/08/01 Python
python opencv实现图像边缘检测
2019/04/29 Python
梅尔倒谱系数(MFCC)实现
2019/06/19 Python
用Python解数独的方法示例
2019/10/24 Python
让Django的BooleanField支持字符串形式的输入方式
2020/05/20 Python
详解CSS3 弹性布局快速入门
2019/06/06 HTML / CSS
详解HTML5 window.postMessage与跨域
2017/05/11 HTML / CSS
GafasWorld哥伦比亚:网上购买眼镜
2017/11/28 全球购物
拥有超过850家商店的美国在线派对商店:Party City
2018/10/21 全球购物
Kiwi.com中国:找到特价机票并发现新目的地
2019/10/27 全球购物
SK-II神仙水美国官网:SK-II美国
2020/02/25 全球购物
一个大学生十年的职业规划
2014/01/17 职场文书
vue使用Google Recaptcha验证的实现示例
2021/08/23 Vue.js