Python HTMLParser未能读取整个文件
from HTMLParser import HTMLParser
class HTMLParserDos(HTMLParser):
full_text = ""
def handle_data(self, data):
self.full_text += data
return self.full_text
h = HTMLParserDos()
file = open('emails.txt', 'r')
h.feed(file.read())
file.close()
print h.container
这段代码出现了一个错误:
错误追踪(最近的调用在最前面):文件 "/Users/laurenstrom/Google Drive/PYTHON/RANDO_CALRISSIAN/html_parse",第15行,在 h.feed(file.read()) 文件 "/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/HTMLParser.py",第108行,在 feed self.goahead(0) 文件 "/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/HTMLParser.py",第148行,在 goahead k = self.parse_starttag(i) 文件 "/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/HTMLParser.py",第229行,在 parse_starttag endpos = self.check_for_whole_start_tag(i) 文件 "/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/HTMLParser.py",第304行,在 check_for_whole_start_tag self.error("malformed start tag") 文件 "/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/HTMLParser.py",第115行,在 error raise HTMLParseError(message, self.getpos()) HTMLParseError: malformed start tag, 在第7行,第18列
我不太明白 .feed() 这个方法有什么问题,但我找不到任何关于它为什么不能读取整个文件的信息。
1 个回答
你在让HTML解析器去解析一个大部分不是HTML的文件。它在你文件的第7行遇到了问题。那一行是:
Return-Path: <Tom@sjnetworkconsulting.com>
我想它看到那个<符号,就以为这是HTML,但实际上并不是。