Python HTMLParser未能读取整个文件

0 投票
1 回答
2754 浏览
提问于 2025-04-18 02:53
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 个回答

0

你在让HTML解析器去解析一个大部分不是HTML的文件。它在你文件的第7行遇到了问题。那一行是:

Return-Path: <Tom@sjnetworkconsulting.com>

我想它看到那个<符号,就以为这是HTML,但实际上并不是。

撰写回答