Python网络编程基础笔记-HTML解析与HTML构建
1.Python先解析HTML文件,再使用解析的结果生成HTML源文件# -*- coding: cp936 -*-
"""
再解析HTML文件,使用HTMLParser解析度结果重新生成HTML文件
这里没有处理comment
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):
HTMLParser.__init__(self)
def handle_starttag(self,tag,attrs):
# 如果遇到title>添加
sys.stdout.write(" + tag + " ")
# 将对应的属性添加上
for attr in attrs:
sys.stdout.write(attr)
# 添加上>,此时一个TAG的开始部分完成
sys.stdout.write(">")
def handle_data(self,data):
# 将数据追加
sys.stdout.write(data)
def handle_endtag(self,tag):
# 如果遇到结束TAG,添加/和>
sys.stdout.write(" + tag + ">")
fd = file("basictitle.html")
tp = TitleParser()
tp.feed(fd.read())
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>