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>