如何修复不兼容的HTML,以便Expat解析它(htmltidy不起作用)

如何修复不兼容的HTML,以便Expat解析它(htmltidy不起作用),html,xml,htmltidy,expat-parser,Html,Xml,Htmltidy,Expat Parser,我试图从中获取信息(特别是,找出游戏何时结束,这样我的电脑就可以停止记录)。我可以很容易地下载HTML,它声称符合标准: <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="e

我试图从中获取信息(特别是,找出游戏何时结束,这样我的电脑就可以停止记录)。我可以很容易地下载HTML,它声称符合标准:

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
    "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
但是当我检查输入时,“未知实体”似乎是正确引用的URL的一部分,所以我不知道是否有双引号丢失了


我知道有些东西可以解析这些东西,因为Firefox和w3m都显示了一些合理的东西什么工具可以修复不符合要求的HTML,这样我就可以用Expat解析它了?

他们在分数框上使用了某种Javascript,所以你必须玩更聪明的把戏(我的换行符):

但是,为了回答您的问题,BeautifulSoup(似乎)很好地解析了它:

产出:

<title>NFL Scores: 2009 - Week 12</title>
我会在周日调整它,看看它是如何运作的,因为它真的很粗糙。以下是它目前的输出:

--- Game ---
Green Bay ([0, 13, 14, 7], 34)
Detroit ([7, 0, 0, 5], 12)
--- Game ---
Oakland ([0, 0, 7, 0], 7)
Dallas ([3, 14, 0, 7], 24)
看那个,我也拿到了方块分数。。。对于一场尚未发生的比赛,我们得到:

--- Game ---
Washington ([], None)
Philadelphia ([], None)

不管怎样,这是一个可以让你跳下去的钉子。祝你好运。

他们在分数框上使用了某种Javascript,因此你必须玩更聪明的把戏(我的分线):

但是,为了回答您的问题,BeautifulSoup(似乎)很好地解析了它:

产出:

<title>NFL Scores: 2009 - Week 12</title>
我会在周日调整它,看看它是如何运作的,因为它真的很粗糙。以下是它目前的输出:

--- Game ---
Green Bay ([0, 13, 14, 7], 34)
Detroit ([7, 0, 0, 5], 12)
--- Game ---
Oakland ([0, 0, 7, 0], 7)
Dallas ([3, 14, 0, 7], 24)
看那个,我也拿到了方块分数。。。对于一场尚未发生的比赛,我们得到:

--- Game ---
Washington ([], None)
Philadelphia ([], None)

不管怎样,这是一个可以让你跳下去的钉子。祝你好运。

在nfl.com的顶部有一个基于Flash的自动更新记分板功能。对其网络流量的一些监控发现:


这可能比HTML记分板更容易解析。

nfl.com顶部有一个基于Flash的自动更新记分板功能。对其网络流量的一些监控发现:



这可能比HTML记分板更容易解析。

查看。如果您希望在Java中得到一个DOM树或SAX流,这就是问题所在。如果你只是想提取特定的信息,那么靓汤是一件美丽的事情。

仔细研究。如果您希望在Java中得到一个DOM树或SAX流,这就是问题所在。如果您只想提取特定信息,那么“靓汤”是一件美丽的事情。

wtf是外籍人士吗?某个住在国外的人?你试过w3c验证服务吗?-->Expat是一个XML解析库。我不想说,但HTML是一个可怕的乱七八糟的东西,如果你设法让它在任何地方进行解析,我会非常惊讶。@Norman:那么你需要的是一个HTML解析库,而不是XML解析库。HTML解析器被设计成可以被破坏和生存。wtf是Expat吗?某个住在国外的人?你试过w3c验证服务吗?-->Expat是一个XML解析库。我不想说,但HTML是一个可怕的乱七八糟的东西,如果你设法让它在任何地方进行解析,我会非常惊讶。@Norman:那么你需要的是一个HTML解析库,而不是XML解析库。HTML解析器被设计成可以被破坏和生存。BeautifulSoup看起来棒极了+1我检查了它,BeautifulSoup几乎完全清除了HTML,但它吐出的XML仍然包含5个错误。(这是使用
prettify
方法的输出。)我有点不愿意深入研究,因为我的基础设施的其余部分都在Lua中,所以我可能会先尝试xml提要。但这仍然是一件很值得了解的事情。BeautifulSoup看起来棒极了+1我检查了它,BeautifulSoup几乎完全清除了HTML,但它吐出的XML仍然包含5个错误。(这是使用
prettify
方法的输出。)我有点不愿意深入研究,因为我的基础设施的其余部分都在Lua中,所以我可能会先尝试xml提要。但是这仍然是一件非常值得了解的事情。虽然Debian软件包不会运行,但看起来非常有用。Grrrr+1,谢谢。根据经验,我从来没有通过debian使用过Java。虽然debian包不会运行,但看起来非常有用。Grrrr+1,谢谢。根据经验,我从不通过debian使用Java。非常聪明,而且更容易解析。我不知道这是否会导致军备竞赛。这并不能真正回答所提出的问题,但它对我真正的问题非常有帮助,我把它标记为公认的答案。谢谢非常聪明,而且更容易解析。我不知道这是否会导致军备竞赛。这并不能真正回答所提出的问题,但它对我真正的问题非常有帮助,我把它标记为公认的答案。谢谢
--- Game ---
Washington ([], None)
Philadelphia ([], None)