当BeautifulSoup击中未转义的括号时,它无法解析

时间:2012-07-12 10:41:31

标签: python parsing html-parsing beautifulsoup

我在加载包含文字(未转义)电子邮件标签的网页时遇到问题,例如

<html>
    <head>
            <title>Testing</title>
    </head>
    <body>
            <p>Testing testing.</p>
            <p>This is an email address for <joe@somewhere.com></p>
    </body>
</html>

当它击中该块时解析失败:

文件“/tools/oss/packages/x86_64-rhel5/python/2.7.1/lib/python2.7/HTMLParser.py”,第115行,出错     引发HTMLParseError(message,self.getpos()) HTMLParseError:格式错误的开始标记,位于第748行,第82列

我无法相信我是第一个遇到此问题的人,但我无法立即找到任何帮助或有用的文档。我错过了一些明显的东西吗?

谢谢,

- 保罗

2 个答案:

答案 0 :(得分:0)

始终如此 - 当您发布问题时,您会突然找到答案。

看起来我遇到了http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=516824中描述的错误 - 更新到后来的BeautifulSoup确实解决了这个问题。

答案 1 :(得分:-1)

这是BeautifulSoup的常见问题。 它不处理格式错误的标记,因为它使用正则表达式来检测标记。

为python尝试lxml。值得一提的是,它与BeautifulSoup类似。

http://lxml.de/elementsoup.html

PS:更新BeautifulSoup也可能有所帮助。