用 htmlparser1.6 解析html
在解析了大量的html测试后发现了htmlparser的问题,
称之为问题也不算是问题,因为htmlparser本身也预留了解决途径,
其实这两个问题属于同一种问题:
问题1:
当解析<script>脚本时,如果脚本文本中出现如 '<span></span>' 时,
当走到 '</' 他会认为到了</script>,脚本分析完毕,导致后面的脚本文本被漏掉。
问题2:
当解析 <!--注释--> ,默认情况下,htmlparser只识别 <!--注释--> 这种类型的注释代码,
如果是: '<!---注释--->' ,它会关不掉,导致后面的html内容也被当做注释。
这两种问题htmlparser设计者都想到了,也预留了解决途径,只是没找到合适的解决途径。
解决1:
org.htmlparser.scanners.ScriptScanner.STRICT = false;
解决2:
org.htmlparser.lexer.Lexer.STRICT_REMARKS = false;
org.htmlparser.scanners.ScriptScanner.STRICT = false的官方解释:
org.htmlparser.lexer.Lexer.STRICT_REMARKS 的官方解释:
在默认情况下,htmlparser解析是按严格的html标准解析,所以当碰到不标准的标签有可能出错,
当把以上这两个参数改变以后,htmlparser解析不再严格,能应对所有可能出现的情况。