爬虫基础 - 网页基础

2018-12-02  本文已影响0人  冰度猎魂

网页的组成

网页可以分为三大部分——HTML、CSS和JavaScript。

HTML

HTML是用来描述网页的一种语言,其全称叫作Hyper Text Markup Language,即超文本标记语言。网页包含文字、按钮、图片和视频等各种复杂的元素,其基础架构就是HTML。不同类型的文字通过不同类型的标签来表示,如图片用img标签表示,视频用video标签表示,段落用p标签表示,他们之间的布局又常通过布局标签div嵌套组合而成,各种标签通过不同的排列和嵌套才形成了网页的框架。

CSS

HTML定义了网页的结构,但是只有HTML页面的布局并不美观,可能只是简单的节点元素的排列,为了让网页看起来更好看一些,这里借助了CSS。
CSS,全称叫作Cascading Style Sheets,即层叠样式表。“层叠”是指当在HTML中引用了数个样式文件,并且样式发生冲突时,浏览器能依据层叠顺序处理。“样式”指网页中文字大小、颜色、元素间距、排列等格式。

JavaScript

JavaScript,简称JS,是一种脚本语言。HTML和CSS配合使用,提供给用户的只是一种静态信息,缺乏交互性。我们在网页里可能会看到一些交互和动画效果,如下载进度条、提示框、轮播图等,这通常就是JavaScript的功劳。它的出现使得用户与信息之间不只是一种浏览与显示的关系,而是实现了一种实时、动态、交互的页面功能。
JavaScript通常也是以单独的文件形式加载的,后缀为js,在HTML中通过script标签即可引入,例如:

<script src="jquery-2.1.0.js"></script>

综上所述,HTML定义了网页内容和结构,CSS描述了网页的布局,JavaScript定义了网页的行为。

网页的结构

新建一个文本文件,后缀名为html。

<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>This is a Demo</title>
</head>
<body>
<div id="container">
<div class="wrapper">
<h2 class="title">Hello World</h2>
<p class="text">Hello, this is a paragraph.</p>
</div>
</div>
</body>
</html>

节点树及节点间的关系

在HTML中,所有标签定义的内容都是节点,他们构成了一个HTML DOM树。
DOM是W3C的标准,其英文全称Document Object Model,即文档对象模型。它定义了访问HTML和XML文档的标准:

W3C文档对象模型(DOM)是中立于平台和语言的接口,它允许程序动态地访问和更新文档的内容、结构和样式。

W3C DOM标准被分为3个不同的部分。

根据W3C的HTML DOM标准,HTML文档中的所有内容都是节点。

通过HTML DOM,树中的所有节点均可通过JavaScript访问,所有HTML节点元素均可被修改,也可以被创建或删除。
节点树中的节点彼此拥有层级关系。我们常用父(parent)、子(child)和兄弟(sibling)等术语描述这些关系。父节点拥有子节点,同级的子节点被称为兄弟节点。

选择器

选择器 例子 例子描述
.class .intro 选择class="intro"的所有节点
#id #firstname 选择id="firstname"的所有节点
* * 选择所有节点
element p 选择所有p节点
element,element div,p 选择所有div节点和所有p节点
element element div p 选择div节点内部的所有p节点
element>element div>p 选择父节点为div节点的所有p节点
element+element div+p 选择紧接在div节点之后的所有p节点
[attribute] [target] 选择带有target属性的所有节点
[attribute=value] [target=blank] 选择target="blank"的所有节点
[attribute~=value] [title~=flower] 选择title属性包含单词flower的所有节点
:link a:link 选择所有未被访问的链接
:visited a:visited 选择所有已被访问的链接
:active a:active 选择活动链接
:hover a:hover 选择鼠标指针位于其上的链接
:focus input:focus 选择获得焦点的input节点
:first-letter p:first-letter 选择每个p节点的首字母
:first-line p:first-line 选择每个p节点的首行
:first-child p:first-child 选择属于父节点的第一个子节点的所有p节点
:before p:before 在每个p节点的内容之前插入内容
:after p:after 在每个p节点的内容之后插入内容
:lang(language) p:lang 选择带有以it开头的lang属性值得所有p节点
element1~element2 p~ul 选择前面有p节点的所有ul节点
[attribute^=value] a[src^="https"] 选择其src属性以https开头的所有a节点
[attribute$=value] a[src$=".pdf"] 选择其src属性以.pdf结尾的所有a节点
[attribute*=value] a[src*="abc"] 选择其src属性中包含abc子串的所有a节点
:first-of-type p:first-of-type 选择属于其父节点的首个p节点的所有p节点
:last-of-type p:last-of-type 选择属于其父节点的最后p节点的所有p节点
:only-of-type p:only-of-type 选择属于其父节点的唯一子节点的所有p节点
:only-child p:only-child 选择属于其父节点的唯一子节点的所有p节点
:nth-child(n) p:nth-child 选择属于其父节点的第二个子节点的所有p节点
:nth-last-child(n) p:nth-last-child 同上,从最后一个子节点开始计数
:nth-of-type(n) p:nth-of-type 选择属于其父节点第二个p节点的所有p节点
:nth-last-of-type(n) p:nth-last-of-type 同上,但是从最后一个子节点开始计数
:last-child p:last-child 选择属于其父节点最后一个子节点的所有p节点
:root :root 选择文档的根节点
:empty p:empty 选择没有子节点的所有p节点(包括文本节点)
:target #news:target 选择当前活动的#news节点
:enabled input:enabled 选择每个启动的input节点
:disabled input:disabled 选择每个禁用的input节点
:checked input:checked 选择每个被选中的input节点
:not(selector) :not 选择非p节点的所有节点
::selection ::selection 选择被用户选取的节点部分
上一篇下一篇

猜你喜欢

热点阅读