我正在尝试解析一个破坏的html页面,该页面在anther注释中有注释,所有着名的htmlparsers如beautifulsoup,lxml和HTMLParser都会出现语法错误。以下是代码。如何忽略损坏代码的部分并解析页面的其余部分?
<html xmlns="http://www.w3.org/1999/xhtml"><head>
<script language="JavaScript">
<!--
function setTimeOffsetVars (Link) {
// code removed
}
<!-- Image Preloader - takes an array of images to preload -->
function warningCheck(e, warnMsg) {
// code removed
}
-->
</script>
</head>
<body topmargin="0" leftmargin="0" rightmargin="0" bottommargin="0" marginwidth="0" marginheight="0">
<!-- lot of useful code -->
</body></html>
答案 0 :(得分:3)
如果你知道问题是什么,你可以预处理:首先使用像regexps这样的原始方法去除有问题的内部注释,然后用真正的解析器命中它。
答案 1 :(得分:1)
这个html我没有错误。我尝试过beautifulsoup4和lxml。
from bs4 import BeautifulSoup
soup = BeautifulSoup(s)
print soup.prettify()
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<script language="JavaScript">
<!--
function setTimeOffsetVars (Link) {
// code removed
}
<!-- Image Preloader - takes an array of images to preload -->
function warningCheck(e, warnMsg) {
// code removed
}
-->
</script>
</head>
<body bottommargin="0" leftmargin="0" marginheight="0" marginwidth="0" rightmargin="0" topmargin="0">
<!-- lot of useful code -->
</body>
</html>