Racket中的HTML解析问题

时间:2013-11-23 05:56:40

标签: html parsing racket

我想解析一些HTML文档,看来Racket的html和xml库无法很好地处理这个问题。例如,这是一个HTML文档:

<!DOCTYPE html>
<html>
    <head>
        <meta charset="utf-8" />
        <title>Test</title>
        <script>
            var k = "<scr";
        </script>
    </head>
    <body>
    </body>
</html>

read-htmlread-xml都无法解析此问题。他们认为<scr中的var k = "<scr"是开始标记的一部分。

那么,有没有更好的方法呢?

1 个答案:

答案 0 :(得分:1)

试用html-parsing包。

  

html解析解析行为是允许的,因为它接受错误的HTML,优雅地处理几类HTML语法错误,而不会产生解析错误。这对于解析任意现实世界的Web页面至关重要,因为许多页面实际上包含会破坏严格或验证解析器的语法错误。 html-parsing对错误的处理旨在通常模拟流行的Web浏览器对错误HTML结构的解释。我们委婉地称这种解析为“务实”。

虽然我不确定它是否会像这样处理<script>标签,但它可能会。作者Neil Van Dyke积极参与Racket mailing list