html - <tbody> 标签显示在 chrome 但不是源

标签 html google-chrome web-scraping

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

例如,DevTools 显示:

<table>
    <tbody>
        <tr valign="top">
            <td>...</td>

页面源显示:

<table border="0">
    <tr valign="top">
        <td>

最佳答案

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

需要的,因为规则说你不能有 tr直接在table . table 的独生子元素可以是 caption , colgroup , thead , tbodytfoot .
所以,如果浏览器遇到 trtbody之外, 它插入一个 tbody哪个tr将居住在。

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

顺便说一下,其他开始标签也会发生同样的情况,比如 <body> .如果你忽略它,写,比方说,<h1>直接在 </head> 之后, 浏览器将插入隐含的 <body>自动。

关于html - <tbody> 标签显示在 chrome 但不是源,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34024136/

相关文章:

html - 在浏览器中下载的 EML 文件,而不是使用电子邮件应用程序内联打开

html - 位置为 : fixed 的响应式 CSS 网格布局

javascript - 如何使用 phantomjs/casperjs 处理下载?

python - 使用 BeautifulSoup4 抓取网页

javascript - 如果行太多,Chrome 无法导出到 csv?

javascript - 选择具有相同类名的多个标签?

python - 本地 HTML 文件无法正确加载到 Dash 应用程序中

python - 使用 HTML5 编写器删除 docutils 输出中的 docinfo

javascript - 使用 setTimeouts 排队的浏览器功能可以自动放弃吗?

javascript - StumbleUpon chrome 扩展如何在 google 主页导航栏上方插入 div?