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调用SQLPlus来操作和解析Oracle数据库的方法
Apr 09 Python
Python中利用Scipy包的SIFT方法进行图片识别的实例教程
Jun 03 Python
Python更新数据库脚本两种方法及对比介绍
Jul 27 Python
Python使用getpass库读取密码的示例
Oct 10 Python
python实现图片筛选程序
Oct 24 Python
Python解决两个整数相除只得到整数部分的实例
Nov 10 Python
python 中Arduino串口传输数据到电脑并保存至excel表格
Oct 14 Python
Python操作SQLite/MySQL/LMDB数据库的方法
Nov 07 Python
python3 BeautifulSoup模块使用字典的方法抓取a标签内的数据示例
Nov 28 Python
Python合并2个字典成1个新字典的方法(9种)
Dec 19 Python
python3.7通过thrift操作hbase的示例代码
Jan 14 Python
宝塔面板成功部署Django项目流程(图文)
Jun 22 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
PHP+DBM的同学录程序(4)
2006/10/09 PHP
坏狼的PHP学习教程之第2天
2008/06/15 PHP
Php Mssql操作简单封装支持存储过程
2009/12/11 PHP
PHP中用hash实现的数组
2011/07/17 PHP
通过PHP的内置函数,通过DES算法对数据加密和解密
2012/06/21 PHP
windows下apache搭建php开发环境
2015/08/27 PHP
WordPress中设置Post Type自定义文章类型的实例教程
2016/05/10 PHP
laravel 5.1下php artisan migrate的使用注意事项总结
2017/06/07 PHP
javascript attachEvent绑定多个事件执行顺序问题
2010/10/20 Javascript
js substr、substring和slice使用说明小记
2011/09/15 Javascript
jQuery EasyUI API 中文文档 - Spinner微调器使用
2011/10/21 Javascript
js+css实现增加表单可用性之提示文字
2013/06/03 Javascript
jQuery制作简洁的多级联动Select下拉框
2014/12/23 Javascript
在浏览器中实现图片粘贴的jQuery插件-- pasteimg使用指南
2014/12/29 Javascript
JavaScript使用FileSystemObject对象写入文本文件内容的方法
2015/08/05 Javascript
javascript封装 Cookie 应用接口
2015/08/07 Javascript
js右下角弹出提示框示例代码
2016/01/12 Javascript
jquery获取下拉框中的循环值
2017/02/08 Javascript
浅谈angularjs中响应回车事件
2017/04/24 Javascript
JavaScript中防止微信浏览器被整体拖动的方法
2017/08/25 Javascript
Vue实现6位数密码效果
2018/08/18 Javascript
Vue Components 数字键盘的实现
2019/09/18 Javascript
Js数组扁平化实现方法代码总汇
2020/11/11 Javascript
Python Dataframe 指定多列去重、求差集的方法
2018/07/10 Python
python中pika模块问题的深入探究
2018/10/13 Python
pytorch查看模型weight与grad方式
2020/06/24 Python
巧用CSS3 border实现图片遮罩效果代码
2012/04/09 HTML / CSS
移动端html5 meta标签的神奇功效
2016/01/06 HTML / CSS
Wedgwood美国官网:英国骨瓷,精美礼品及家居装饰
2018/02/17 全球购物
美国LOGO设计公司:The Logo Company
2018/07/16 全球购物
个人找工作求职简历的自我评价
2013/10/20 职场文书
实用求职信范文分享
2013/12/25 职场文书
数据保密承诺书
2014/06/03 职场文书
四风问题查摆材料
2014/08/25 职场文书
2014年民主评议党员工作总结
2014/12/02 职场文书
二婚主持词
2015/06/30 职场文书