查看Python官网的文档,看了下关于HTMLParser模块的讲解,感觉不错,记录之。
但是现在的疑问是用文件打开html文档和用HTMLParser对象直接读取文档最后输出结果不同,不知道原因,猜测应该是
from HTMLParser import HTMLParser
import sys
class HTMLParser(HTMLParser):
def handle_starttag(self, tag, atrrs):
print 'Encountered a start tag:', tag
def handle_endtag(self, tag):
print 'Encountered an end tag:', tag
def handle_data(self, data):
print 'Encountered some data:', data
'''
用文件打开的方式和直接读取方式输出结果不同
'''
fileHandle = open('./b.html')
htmlParser = HTMLParser()
htmlParser.feed(fileHandle.read())
Encountered a start tag: html
Encountered some data:
Encountered a start tag: head
Encountered some data:
Encountered a start tag: title
Encountered some data: Test
Encountered an end tag: title
Encountered some data:
Encountered an end tag: head
Encountered some data:
Encountered a start tag: body
Encountered some data:
Encountered a start tag: h1
Encountered some data: Parse me!
Encountered an end tag: h1
Encountered some data:
Encountered an end tag: body
Encountered some data:
Encountered an end tag: html
Encountered some data: ')
htmlParser = HTMLParser()
htmlParser.feed('<html><head><title>Test</title></head><body><h1>Parse me!</h1></body></html>')
Encountered a start tag: html
Encountered a start tag: head
Encountered a start tag: title
Encountered some data: Test
Encountered an end tag: title
Encountered an end tag: head
Encountered a start tag: body
Encountered a start tag: h1
Encountered some data: Parse me!
Encountered an end tag: h1
Encountered an end tag: body
Encountered an end tag: html