python sgmllib.SGMLParser的学习

本文介绍了如何使用Python的sgmllib库中的SGMLParser解析HTML文档,特别是针对<a>标签提取href属性。同时,展示了如何利用urllib获取网页内容,并通过自定义的MySGMLParser类解析HTML,收集链接和数据。最后,给出了一个完整的实例,从百度首页抓取链接和文本数据。
摘要由CSDN通过智能技术生成
#!/usr/bin/python
#coding:utf-8


import urllib,time
#导入sgmllib中分析网页的 SGMLParser模块
from sgmllib import SGMLParser
#SGMLParser模块的介绍
"""
1.为了从 HTML 文档中提取数据,将 SGMLParser 类进行子类化,然后对想要捕捉的标记或实体定义方法


2.reset 由 SGMLParser 的 __init__ 方法来调用,也可以在创建一个分析器实例时手工来调用。所以如
  果您需要做初始化,在 reset 中去做,而不要在 __init__ 中做。这样当某人重用一个分析器实例时,
  可以正确地重新初始化。


3.只要找到一个 <a> 标记,start_a 就会由 SGMLParser 进行调用。这个标记可以包含一个 href 属性,
  或者包含其它的属性,如 name 或 title。attrs 参数是一个 tuple 的 list,[(attribute, value),
  (attribute, value), ...]。或者它可以只是一个有效的 HTML 标记 <a> (尽管无用),这时 attrs 将
  是个空 list。


4.我们可以通过一个简单的多变量 list 映射来查找这个 <a> 标记是否拥有一个 href 属性。


5.像 k=='href' 的字符串比较是区分大小写的,但是这里是安全的。因为 SGMLParser 会在创建 attrs
  时将属性名转化为小写。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值