Python网络编程基础笔记-提取HTML源文件标题

1.python提取HTML文件标题# -*- coding: cp936 -*-
"""
解析HTML文件,打印出标题
1.handle_starttag:遇到开始TAG时调用,...
2.handle_endtag:遇到结束TAG时调用,...
3.handle_data:处理一般字符
4.参数说明:
    tag:当前解析的TAG
    attrs:当前TAG的属性,以tuple的形式
    data:当前的TAG所对应的内容
这三个函数默认情况下什么都不做,需要在子类中重载
"""
from HTMLParser import HTMLParser
import sys
class TitleParser(HTMLParser):
    def __init__(self):
        self.title = ""
        self.readingTitle = 0
        HTMLParser.__init__(self)
    def handle_starttag(self,tag,attrs):
        # 如果遇到title>将readingTitle置为1,开始接收title到数据
        if tag == "title":
            self.readingTitle = 1
    def handle_data(self,data):
        # 如果当前处理的为title,将数据追加到title变量中
        print data
        if self.readingTitle:
            self.title += data
    def handle_endtag(self,tag):
        # 如果遇到/title>,将readingTitle置为0,将不再接收数据
        if tag == "title":
            self.readingTitle = 0
    def getTitle(self):
        return self.title
fd = file("basictitle.html")
tp = TitleParser()
tp.feed(fd.read())
print "Title is:",tp.getTitle()
        
2.测试使用的HTML文件
               
                !DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
html xmlns="http://www.w3.org/1999/xhtml">
head>
meta http-equiv="Content-Type" content="text/html; charset=gb2312" />
title>无标题文档/title>
/head>
body>
this is my text
/body>
/html>