python爬虫需要掌握的HTML基础知识!

HTML 简介

实例

<html>
<body>

<h1>我的第一个标题</h1>

<p>我的第一个段落。</p>

</body>
</html>

什么是 HTML?

HTML 是用来描述网页的一种语言。

  • HTML 指的是超文本标记语言 (Hyper Text Markup Language)
  • HTML 不是一种编程语言,而是一种标记语言 (markup language)
  • 标记语言是一套标记标签 (markup tag)
  • HTML 使用标记标签来描述网页

HTML 标签

HTML 标记标签通常被称为 HTML 标签 (HTML tag)。

  • HTML 标签是由尖括号包围的关键词,比如 <html>
  • HTML 标签通常是成对出现的,比如 <b> 和 </b>
  • 标签对中的第一个标签是开始标签,第二个标签是结束标签
  • 开始和结束标签也被称为开放标签闭合标签

HTML 文档 = 网页

  • HTML 文档描述网页
  • HTML 文档包含 HTML 标签和纯文本
  • HTML 文档也被称为网页

Web 浏览器的作用是读取 HTML 文档,并以网页的形式显示出它们。浏览器不会显示 HTML 标签,而是使用标签来解释页面的内容:

<html>
<body>

<h1>我的第一个标题</h1>

<p>我的第一个段落。</p>

</body>
</html>

例子解释

  • <html> 与 </html> 之间的文本描述网页
  • <body> 与 </body> 之间的文本是可见的页面内容
  • <h1> 与 </h1> 之间的文本被显示为标题
  • <p> 与 </p> 之间的文本被显示为段落

HTML 编辑器

HTML 简介

HTML 基础

使用 Notepad 或 TextEdit 来编写 HTML

可以使用专业的 HTML 编辑器来编辑 HTML:

Adobe Dreamweaver

  • Microsoft Expression Web
  • CoffeeCup HTML Editor
  • 不过,我们同时推荐使用文本编辑器来学习 HTML,比如 Notepad (PC) 或 TextEdit (Mac)。我们相信,使用一款简单的文本编辑器是学习 HTML 的好方法。

    通过记事本,依照以下四步来创建您的第一张网页。

    步骤一:启动记事本

    如何启动记事本:

    开始
        所有程序
            附件
                记事本

    步骤二:用记事本来编辑 HTML

    在记事本中键入 HTML 代码:

    记事本

    步骤三:保存 HTML

    在记事本的文件菜单选择“另存为”。

    当您保存 HTML 文件时,既可以使用 .htm 也可以使用 .html 扩展名。两者没有区别,完全根据您的喜好。

    在一个容易记忆的文件夹中保存这个文件,比如 w3school。

    步骤四:在浏览器中运行这个 HTML 文件

    启动您的浏览器,然后选择“文件”菜单的“打开文件”命令,或者直接在文件夹中双击您的 HTML 文件。

    结果应该类似这样:

    在浏览器中查看

基本的 HTML 标签 - 四个实例

本章通过实例向您演示最常用的 HTML 标签。

提示:不要担心本章中您还没有学过的例子,您将在下面的章节中学到它们。

提示:学习 HTML 最好的方式就是边学边做实验。我们为您准备了很好的 HTML 编辑器。使用这个编辑器,您可以任意编辑一段 HTML 源码,然后单击 TIY 按钮来查看结果。

HTML 标题

HTML 标题(Heading)是通过 <h1> - <h6> 等标签进行定义的。

实例

<h1>This is a heading</h1>
<h2>This is a heading</h2>
<h3>This is a heading</h3>

HTML 段落

HTML 段落是通过 <p> 标签进行定义的。

实例

<p>This is a paragraph.</p>
<p>This is another paragraph.</p>

HTML 链接

HTML 链接是通过 <a> 标签进行定义的。

实例

<a href="http://www.w3school.com.cn">This is a link</a>

注释:在 href 属性中指定链接的地址。

(您将在本教程稍后的章节中学习更多有关属性的知识)。

HTML 图像

HTML 图像是通过 <img> 标签进行定义的。

实例

<img src="w3school.jpg" width="104" height="142" />

 

注释:图像的名称和尺寸是以属性的形式提供的。

HTML 元素

HTML 文档是由 HTML 元素定义的。

HTML 元素

HTML 元素指的是从开始标签(start tag)到结束标签(end tag)的所有代码。

开始标签元素内容结束标签
<p>This is a paragraph</p>
<a href="default.htm" >This is a link</a>
<br />  

注释:开始标签常被称为开放标签(opening tag),结束标签常称为闭合标签(closing tag)。

HTML 元素语法

  • HTML 元素以开始标签起始
  • HTML 元素以结束标签终止
  • 元素的内容是开始标签与结束标签之间的内容
  • 某些 HTML 元素具有空内容(empty content)
  • 空元素在开始标签中进行关闭(以开始标签的结束而结束)
  • 大多数 HTML 元素可拥有属性

提示:您将在本教程的下一章中学习更多有关属性的内容。

嵌套的 HTML 元素

大多数 HTML 元素可以嵌套(可以包含其他 HTML 元素)。

HTML 文档由嵌套的 HTML 元素构成。

HTML 文档实例

<html>

<body>
<p>This is my first paragraph.</p>
</body>

</html>

上面的例子包含三个 HTML 元素。

HTML 实例解释

<p> 元素:

<p>This is my first paragraph.</p>

这个 <p> 元素定义了 HTML 文档中的一个段落。

这个元素拥有一个开始标签 <p>,以及一个结束标签 </p>。

元素内容是:This is my first paragraph。

<body> 元素:

<body>
<p>This is my first paragraph.</p>
</body>

<body> 元素定义了 HTML 文档的主体。

这个元素拥有一个开始标签 <body>,以及一个结束标签 </body>。

元素内容是另一个 HTML 元素(p 元素)。

<html> 元素:

<html>

<body>
<p>This is my first paragraph.</p>
</body>

</html>

<html> 元素定义了整个 HTML 文档。

这个元素拥有一个开始标签 <html>,以及一个结束标签 </html>。

元素内容是另一个 HTML 元素(body 元素)。

不要忘记结束标签

即使您忘记了使用结束标签,大多数浏览器也会正确地显示 HTML:

<p>This is a paragraph
<p>This is a paragraph

上面的例子在大多数浏览器中都没问题,但不要依赖这种做法。忘记使用结束标签会产生不可预料的结果或错误。

注释:未来的 HTML 版本不允许省略结束标签。

空的 HTML 元素

没有内容的 HTML 元素被称为空元素。空元素是在开始标签中关闭的。

<br> 就是没有关闭标签的空元素(<br> 标签定义换行)。

在 XHTML、XML 以及未来版本的 HTML 中,所有元素都必须被关闭。

在开始标签中添加斜杠,比如 <br />,是关闭空元素的正确方法,HTML、XHTML 和 XML 都接受这种方式。

即使 <br> 在所有浏览器中都是有效的,但使用 <br /> 其实是更长远的保障。

HTML 提示:使用小写标签

HTML 标签对大小写不敏感:<P> 等同于 <p>。许多网站都使用大写的 HTML 标签。

W3School 使用的是小写标签,因为万维网联盟(W3C)在 HTML 4 中推荐使用小写,而在未来 (X)HTML 版本中强制使用小写。

HTML 属性

属性为 HTML 元素提供附加信息。

HTML 属性

HTML 标签可以拥有属性。属性提供了有关 HTML 元素的更多的信息

属性总是以名称/值对的形式出现,比如:name="value"

属性总是在 HTML 元素的开始标签中规定。

属性实例

HTML 链接由 <a> 标签定义。链接的地址在 href 属性中指定:

<a href="http://www.w3school.com.cn">This is a link</a>

更多 HTML 属性实例

属性例子 1:

<h1> 定义标题的开始。

<h1 align="center"> 拥有关于对齐方式的附加信息。

TIY : 居中排列标题

属性例子 2:

<body> 定义 HTML 文档的主体。

<body bgcolor="yellow"> 拥有关于背景颜色的附加信息。

TIY : 背景颜色

属性例子 3:

<table> 定义 HTML 表格。(您将在稍后的章节学习到更多有关 HTML 表格的内容)

<table border="1"> 拥有关于表格边框的附加信息。

HTML 提示:使用小写属性

属性和属性值对大小写不敏感

不过,万维网联盟在其 HTML 4 推荐标准中推荐小写的属性/属性值。

而新版本的 (X)HTML 要求使用小写属性。

始终为属性值加引号

属性值应该始终被包括在引号内。双引号是最常用的,不过使用单引号也没有问题。

在某些个别的情况下,比如属性值本身就含有双引号,那么您必须使用单引号,例如:

name='Bill "HelloWorld" Gates'

HTML 属性参考手册

我们的完整的 HTML 参考手册提供了每个 HTML 元素可使用的合法属性的完整列表:

 

下面列出了适用于大多数 HTML 元素的属性:

属性描述
classclassname规定元素的类名(classname)
idid规定元素的唯一 id
stylestyle_definition规定元素的行内样式(inline style)
titletext规定元素的额外信息(可在工具提示中显示)

如需更多关于标准属性的信息,请访问:

HTML 标题

在 HTML 文档中,标题很重要。

HTML 标题

标题(Heading)是通过 <h1> - <h6> 等标签进行定义的。

<h1> 定义最大的标题。<h6> 定义最小的标题。

实例

<h1>This is a heading</h1>
<h2>This is a heading</h2>
<h3>This is a heading</h3>

注释:浏览器会自动地在标题的前后添加空行。

注释:默认情况下,HTML 会自动地在块级元素前后添加一个额外的空行,比如段落、标题元素前后。

标题很重要

请确保将 HTML heading 标签只用于标题。不要仅仅是为了产生粗体或大号的文本而使用标题。

搜索引擎使用标题为您的网页的结构和内容编制索引。

因为用户可以通过标题来快速浏览您的网页,所以用标题来呈现文档结构是很重要的。

应该将 h1 用作主标题(最重要的),其后是 h2(次重要的),再其次是 h3,以此类推。

HTML 水平线

<hr /> 标签在 HTML 页面中创建水平线。

hr 元素可用于分隔内容。

实例

<p>This is a paragraph</p>
<hr />
<p>This is a paragraph</p>
<hr />
<p>This is a paragraph</p>

提示:使用水平线 (<hr> 标签) 来分隔文章中的小节是一个办法(但并不是唯一的办法)。

HTML 注释

可以将注释插入 HTML 代码中,这样可以提高其可读性,使代码更易被人理解。浏览器会忽略注释,也不会显示它们。

注释是这样写的:

实例

<!-- This is a comment -->

注释:开始括号之后(左边的括号)需要紧跟一个叹号,结束括号之前(右边的括号)不需要。

提示:合理地使用注释可以对未来的代码编辑工作产生帮助。

HTML 提示 - 如何查看源代码

您一定曾经在看到某个网页时惊叹道 “WOW! 这是如何实现的?”

如果您想找到其中的奥秘,只需要单击右键,然后选择“查看源文件”(IE)或“查看页面源代码”(Firefox),其他浏览器的做法也是类似的。这么做会打开一个包含页面 HTML 代码的窗口。

来自本页的实例

标题

如何在 HTML 文档中显示标题。

隐藏的注释

如何在 HTML 源代码中插入注释。

水平线

如何插入水平线。

HTML 标签参考手册

W3School 的标签参考手册提供了有关这些标题及其属性的更多信息。

您将在本教程下面的章节中学到更多有关 HTML 标签和属性的知识。

标签描述
<html>定义 HTML 文档。
<body>定义文档的主体。
<h1> to <h6>定义 HTML 标题
<hr>定义水平线。
<!-->定义注释。

HTML 段落

可以把 HTML 文档分割为若干段落。

HTML 段落

段落是通过 <p> 标签定义的。

实例

<p>This is a paragraph</p>
<p>This is another paragraph</p>

注释:浏览器会自动地在段落的前后添加空行。(<p> 是块级元素)

提示:使用空的段落标记 <p></p> 去插入一个空行是个坏习惯。用 <br /> 标签代替它!(但是不要用 <br /> 标签去创建列表。不要着急,您将在稍后的篇幅学习到 HTML 列表。)

不要忘记结束标签

即使忘了使用结束标签,大多数浏览器也会正确地将 HTML 显示出来:

实例

<p>This is a paragraph
<p>This is another paragraph

上面的例子在大多数浏览器中都没问题,但不要依赖这种做法。忘记使用结束标签会产生意想不到的结果和错误。

注释:在未来的 HTML 版本中,不允许省略结束标签。

提示:通过结束标签来关闭 HTML 是一种经得起未来考验的 HTML 编写方法。清楚地标记某个元素在何处开始,并在何处结束,不论对您还是对浏览器来说,都会使代码更容易理解。

HTML 折行

如果您希望在不产生一个新段落的情况下进行换行(新行),请使用 <br /> 标签:

<p>This is<br />a para<br />graph with line breaks</p>

<br /> 元素是一个空的 HTML 元素。由于关闭标签没有任何意义,因此它没有结束标签。

<br> 还是 <br />

您也许发现 <br> 与 <br /> 很相似。

在 XHTML、XML 以及未来的 HTML 版本中,不允许使用没有结束标签(闭合标签)的 HTML 元素。

即使 <br> 在所有浏览器中的显示都没有问题,使用 <br /> 也是更长远的保障

HTML 输出 - 有用的提示

我们无法确定 HTML 被显示的确切效果。屏幕的大小,以及对窗口的调整都可能导致不同的结果。

对于 HTML,您无法通过在 HTML 代码中添加额外的空格或换行来改变输出的效果。

当显示页面时,浏览器会移除源代码中多余的空格和空行。所有连续的空格或空行都会被算作一个空格。需要注意的是,HTML 代码中的所有连续的空行(换行)也被显示为一个空格。

(这个例子演示了一些 HTML 格式化方面的问题)

来自本页的实例

HTML 段落

如何在浏览器中显示 HTML 段落。

换行

在 HTML 文档中使用换行。

在 HTML 代码中的排版一首唐诗

浏览器在显示 HTML 时,会省略源代码中多余的空白字符(空格或回车等)。

更多实例

更多段落

段落的默认行为。

HTML 标签参考手册

W3School 的标签参考手册提供了有关 HTML 元素及其属性的更多信息。

标签描述
<p>定义段落。
<br />插入单个折行(换行)。

HTML 样式

style 属性用于改变 HTML 元素的样式。

This text is in Verdana and red

This text is in Times and blue

This text is 30 pixels high

HTML 的 style 属性

style 属性的作用:

提供了一种改变所有 HTML 元素的样式的通用方法。

样式是 HTML 4 引入的,它是一种新的首选的改变 HTML 元素样式的方式。通过 HTML 样式,能够通过使用 style 属性直接将样式添加到 HTML 元素,或者间接地在独立的样式表中(CSS 文件)进行定义。

您可以在我们的 CSS 教程中学习关于样式和 CSS 的所有知识。

在我们的 HTML 教程中,我们将使用 style 属性向您讲解 HTML 样式。

不赞成使用的标签和属性

在 HTML 4 中,有若干的标签和属性是被废弃的。被废弃(Deprecated)的意思是在未来版本的 HTML 和 XHTML 中将不支持这些标签和属性。

这里传达的信息很明确:请避免使用这些被废弃的标签和属性!

应该避免使用下面这些标签和属性:

标签描述
<center>定义居中的内容。
<font> 和 <basefont>定义 HTML 字体。
<s> 和 <strike>定义删除线文本
<u>定义下划线文本
属性描述
align定义文本的对齐方式
bgcolor定义背景颜色
color定义文本颜色

对于以上这些标签和属性:请使用样式代替!

HTML 样式实例 - 背景颜色

background-color 属性为元素定义了背景颜色:

<html>

<body style="background-color:yellow">
<h2 style="background-color:red">This is a heading</h2>
<p style="background-color:green">This is a paragraph.</p>
</body>

</html>

style 属性淘汰了“旧的” bgcolor 属性。

试一试:设置背景颜色的旧方法

HTML 样式实例 - 字体、颜色和尺寸

font-family、color 以及 font-size 属性分别定义元素中文本的字体系列、颜色和字体尺寸:

<html>

<body>
<h1 style="font-family:verdana">A heading</h1>
<p style="font-family:arial;color:red;font-size:20px;">A paragraph.</p>
</body>

</html>

style 属性淘汰了旧的 <font> 标签。

试一试:设置字体的旧方法

HTML 样式实例 - 文本对齐

text-align 属性规定了元素中文本的水平对齐方式:

<html>

<body>
<h1 style="text-align:center">This is a heading</h1>
<p>The heading above is aligned to the center of this page.</p>
</body>

</html>

style 属性淘汰了旧的 "align" 属性。

试一试:设置居中对齐的旧方法

 

HTML 文本格式化

HTML 可定义很多供格式化输出的元素,比如粗体和斜体字。

下面有很多例子,您可以亲自试试:

HTML 文本格式化实例

文本格式化

此例演示如何在一个 HTML 文件中对文本进行格式化

预格式文本

此例演示如何使用 pre 标签对空行和空格进行控制。

“计算机输出”标签

此例演示不同的“计算机输出”标签的显示效果。

地址

此例演示如何在 HTML 文件中写地址。

缩写和首字母缩写

此例演示如何实现缩写或首字母缩写。

文字方向

此例演示如何改变文字的方向。

块引用

此例演示如何实现长短不一的引用语。

删除字效果和插入字效果

此例演示如何标记删除文本和插入文本。

如何查看 HTML 源码

您是否有过这样的经历,当你看到一个很棒的站点,你会很想知道开发人员是如何将它实现的?

你有没有看过一些网页,并且想知道它是如何做出来的呢?

要揭示一个网站的技术秘密,其实很简单。单击浏览器的“查看”菜单,选择“查看源文件”即可。随后你会看到一个弹出的窗口,窗口内就是实际的 HTML 代码。

文本格式化标签

标签描述
<b>定义粗体文本。
<big>定义大号字。
<em>定义着重文字。
<i>定义斜体字。
<small>定义小号字。
<strong>定义加重语气。
<sub>定义下标字。
<sup>定义上标字。
<ins>定义插入字。
<del>定义删除字。
<s>不赞成使用。使用 <del> 代替。
<strike>不赞成使用。使用 <del> 代替。
<u>不赞成使用。使用样式(style)代替。

“计算机输出”标签

标签描述
<code>定义计算机代码。
<kbd>定义键盘码。
<samp>定义计算机代码样本。
<tt>定义打字机代码。
<var>定义变量。
<pre>定义预格式文本。
<listing>不赞成使用。使用 <pre> 代替。
<plaintext>不赞成使用。使用 <pre> 代替。
<xmp>不赞成使用。使用 <pre> 代替。

引用、引用和术语定义

标签描述
<abbr>定义缩写。
<acronym>定义首字母缩写。
<address>定义地址。
<bdo>定义文字方向。
<blockquote>定义长的引用。
<q>定义短的引用语。
<cite>定义引用、引证。
<dfn>定义一个定义项目。

 

HTML 引用

引用(Quotation)

这是摘自 WWF 网站的引文:

五十年来,WWF 一直致力于保护自然界的未来。 世界领先的环保组织,WWF 工作于 100 个国家,并得到美国一百二十万会员及全球近五百万会员的支持。

HTML <q> 用于短的引用

HTML <q> 元素定义短的引用

浏览器通常会为 <q> 元素包围引号

实例

<p>WWF 的目标是:<q>构建人与自然和谐共存的世界。</q></p>

用于长引用的 HTML <blockquote>

HTML <blockquote> 元素定义被引用的节。

浏览器通常会对 <blockquote> 元素进行缩进处理。

实例

<p>以下内容引用自 WWF 的网站:</p>
<blockquote cite="http://www.worldwildlife.org/who/index.html">
五十年来,WWF 一直致力于保护自然界的未来。
世界领先的环保组织,WWF 工作于 100 个国家,
并得到美国一百二十万会员及全球近五百万会员的支持。
</blockquote>

用于缩略词的 HTML <abbr>

HTML <abbr> 元素定义缩写或首字母缩略语。

对缩写进行标记能够为浏览器、翻译系统以及搜索引擎提供有用的信息。

实例

<p><abbr title="World Health Organization">WHO</abbr> 成立于 1948 年。</p>

用于定义的 HTML <dfn>

HTML <dfn> 元素定义项目或缩写的定义

<dfn> 的用法,按照 HTML5 标准中的描述,有点复杂:

1. 如果设置了 <dfn> 元素的 title 属性,则定义项目:

实例

<p><dfn title="World Health Organization">WHO</dfn> 成立于 1948 年。</p>

2. 如果 <dfn> 元素包含具有标题的 <abbr> 元素,则 title 定义项目:

实例

<p><dfn><abbr title="World Health Organization">WHO</abbr></dfn> 成立于 1948 年。</p>

3. 否则,<dfn> 文本内容即是项目,并且父元素包含定义。

实例

注释:如果您希望简而化之,请使用第一条,或使用 <abbr> 代替。

用于联系信息的 HTML <address>

HTML <address> 元素定义文档或文章的联系信息(作者/拥有者)。

此元素通常以斜体显示。大多数浏览器会在此元素前后添加折行。

实例

<address>
Written by Donald Duck.<br> 
Visit us at:<br>
Example.com<br>
Box 564, Disneyland<br>
USA
</address>

用于著作标题的 HTML <cite>

HTML <cite> 元素定义著作的标题

浏览器通常会以斜体显示 <cite> 元素。

实例

<p><cite>The Scream</cite> by Edward Munch. Painted in 1893.</p>

用于双向重写的 HTML <bdo>

HTML <bdo> 元素定义双流向覆盖(bi-directional override)。

<bdo> 元素用于覆盖当前文本方向:

实例

<bdo dir="rtl">This text will be written from right to left</bdo>

HTML 引文、引用和定义元素

标签描述
<abbr>定义缩写或首字母缩略语。
<address>定义文档作者或拥有者的联系信息。
<bdo>定义文本方向。
<blockquote>定义从其他来源引用的节。
<dfn>定义项目或缩略词的定义。
<q>定义短的行内引用。
<cite>定义著作的标题。

 

HTML 计算机代码元素

计算机代码

var person = {
    firstName:"Bill",
    lastName:"Gates",
    age:50,
    eyeColor:"blue"
}

HTML 计算机代码格式

通常,HTML 使用可变的字母尺寸,以及可变的字母间距。

在显示计算机代码示例时,并不需要如此。

<kbd>, <samp>, 以及 <code> 元素全都支持固定的字母尺寸和间距。

HTML 键盘格式

HTML <kbd> 元素定义键盘输入

实例

<p>To open a file, select:</p>

<p><kbd>File | Open...</kbd></p>

HTML 样本格式

HTML <samp> 元素定义计算机输出示例

实例

<samp>
demo.example.com login: Apr 12 09:10:17
Linux 2.6.10-grsec+gg3+e+fhs6b+nfs+gr0501+++p3+c4a+gr2b-reslog-v6.189
</samp>

HTML 代码格式

HTML <code> 元素定义编程代码示例

实例

<code>
var person = { firstName:"Bill", lastName:"Gates", age:50, eyeColor:"blue" }
</code>

<code> 元素不保留多余的空格折行

实例

<p>Coding Example:</p>

<code>
var person = {
    firstName:"Bill",
    lastName:"Gates",
    age:50,
    eyeColor:"blue"
}
</code>

如需解决该问题,您必须在 <pre> 元素中包围代码:

实例

<p>Coding Example:</p>

<code>
<pre>
var person = {
    firstName:"Bill",
    lastName:"Gates",
    age:50,
    eyeColor:"blue"
}
</pre>
</code>

HTML 变量格式化

HTML <var> 元素定义数学变量

实例

<p>Einstein wrote:</p>

<p><var>E = m c<sup>2</sup></var></p>

HTML 计算机代码元素

标签描述
<code>定义计算机代码文本
<kbd>定义键盘文本
<samp>定义计算机代码示例
<var>定义变量
<pre>定义预格式化文本