美文网首页
爬虫基础 - 网页基础

爬虫基础 - 网页基础

作者: 冰度猎魂 | 来源:发表于2018-12-02 16:53 被阅读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个不同的部分。

    • 核心 DOM:针对任何结构化文档的标准模型。
    • XML DOM:针对XML文档的标准模型。
    • HTML DOM:针对HTML文档的标准模型。

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

    • 整个文档是一个文档节点。
    • 每个HMTL元素是元素节点。
    • HTML元素内的文本是文本节点。
    • 每个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 选择被用户选取的节点部分

    相关文章

      网友评论

          本文标题:爬虫基础 - 网页基础

          本文链接:https://www.haomeiwen.com/subject/banjcqtx.html