<tbody> 标签显示在 Chrome 中,但不显示源代码

Aut*_*tic 4 html google-chrome web-scraping

在进行一些抓取工作时,我不断<tbody>在 Chrome DevTools 检查器中遇到该标签,但它没有出现在源代码中。由于我希望是显而易见的原因,我发现这非常令人困惑。这里发生了什么?(我还应该补充一点,这个页面上的 html 格式非常错误)。

例如,DevTools 显示:

<table>
    <tbody>
        <tr valign="top">
            <td>...</td>
Run Code Online (Sandbox Code Playgroud)

页面源码显示:

<table border="0">
    <tr valign="top">
        <td>
Run Code Online (Sandbox Code Playgroud)

Mr *_*ter 5

的开始标记<tbody>是可选的。也就是说,您可以省略它,但浏览器会在需要时自动插入它。

必要的,因为规则规定你不能tr直接在 a 中使用 a table。元素的唯一子元素可以tablecaptioncolgroupthead和。 因此,如果浏览器遇到外部 a ,它会插入 a将驻留在其中。tbodytfoot
trtbodytbodytr

有关更正式的说法,请参阅http://www.w3.org/TR/html-markup/tbody.html

顺便说一句,其他开始标签也会发生同样的情况,例如<body>. 如果您省略它,例如<h1>直接在 后面写入 a </head>,浏览器将<body>自动插入隐含的。