查看
的HTML源代码我发现Google永远不会关闭td
和tr
代码。源中没有</tr>
没有</td>
。
为什么?
<tr class=bb>
<th class="bb lm">Date
<th class="rgt bb">Open
<th class="rgt bb">High
<th class="rgt bb">Low
<th class="rgt bb">Close
<th class="rgt bb rm">Volume
<tr>
<td class="lm">Nov 26, 2010
<td class="rgt">11,183.50
<td class="rgt">11,183.50
<td class="rgt">11,067.17
<td class="rgt">11,092.00
<td class="rgt rm">68,396,121
<tr>
是否因为XML解析器无法读取它而难以解析它?我已经注意到&amp; output = csv不适用于索引(此网址不起作用:http://www.google.com/finance?q=INDEXDJX:.DJI&output=csv),但它可用于库存(http://www.google.com/finance/historical?q =纳斯达克:GOOG&amp; output = csv将起作用)以便在csv中获取索引的历史数据,你必须做解析工作!
答案 0 :(得分:9)
这是HTML4(而不是XML)。正如W3 specs中指出的那样:
11.2.6表格单元格:TH和TD元素
...
开始标记:必填,结束标记:可选
同样为tr
:
11.2.5表行:TR元素
...
开始标记:必填,结束标记:可选
我认为目的是通过省略结束标记来最小化页面大小。他们会进行各种额外的优化,这些优化可能会导致HTML无效,但会由tagsoup mode中的浏览器处理。
答案 1 :(得分:2)
因为速度更快,所需带宽更少,所有主流浏览器都可以应对。此外,虽然这可能不是很好的XHTML,但它仍然是完全有效的HTML。有关更多信息,请参阅此讨 Why do some major websites use invalid HTML?
答案 2 :(得分:0)
他们这样做是为了节省带宽。在谷歌的书中,每个字节都是数千美元,所以为什么要浪费额外的数据字节来制作可读的代码。然而,他们在过去几年中不太关心带宽,因为他们将服务器容量增加到上帝般的比例,因此更大的徽标文件(例如,他们的旧徽标here大约是8.5看起来像垃圾的kb gif文件,它们当前的文件是25 + kb PNG),所以我怀疑他们最终会想出一个更符合标准且更清晰的主页。