当前位置: 首页 > article >正文

爬虫基础(二)Web网页的基本原理

一、网页的组成

网页由三部分构成:HTML、JavaScript、CSS。

(1)HTML

HTML 相当于网页的骨架,它通过使用标签来定义网页内容的结构。

举个例子:

它把图片标签为img、把视频标签为video,然后组合到一个界面里,这种呈现方式就是HTML

如果你想找到它,

比如我们打开任意一个网站:

然后右键打开“检查”,进入Elements面板:

可以看到,当我们鼠标放置在某一标签上时,该标签标记的东西会被锁定,然后呈现出来。

当很多个标签组合,就成了我们看到的网页界面,

(2)CSS

经过上文得知HTML 负责网页内容的结构

那么 CSS 则控制这些内容的样式和布局

即CSS通过选择器决定网页元素的字体、颜色、间距、对齐方式、背景、边框等。

比如:

打开Styles面板,下面的各种各样就是在设置样式

(3)JavaScript

如果说:HTML构建了网页、CSS装饰了网页。

那么JavaScript则提供了交互性

比如下图框中,带js后缀的代码,就是引入互动行为 

二、制作一个简单网页

首先打开文本文件:

第一步,来定义文档类型

<!DOCTYPE html>

第二步要写:

<html lang="zh">
……你的HTML代码
</html>

<html lang="zh">我们可以理解为,告诉电脑我们要开始写了

正常来说我们可以直接写<html>,但加上 lang="zh"就表示指定语言为中文。

结尾的</html>代表,到这里就结束了。

而中间部分,则是我们要写的设置网页内容

第三部,写head标签和body标签

<html>包括head标签和body标签

所以我们要写:

<head>

……

</head>

<body>

……

</body>

head标签意思是网页头,即说明一下页面需要的配置,比如我们可以写:

<meta charset="UTF-8">来表示指定网页编码为UTF-8

body标签的意思是网页体,就是网页正文里要展现的东西,比如我们可以写:

<div id="word">其中div表示定义一个区块,这个区块的id是word,之后我们就可以通过id来获得这个区块,并进行相应的修改设置。

到此为止,我们的完整代码如下:

<!DOCTYPE html>
<html lang="zh">
<head>
    <meta charset="UTF-8">
    <title>简单网页</title>
</head>
<body>
    <header>
        <h1>欢迎访问我的网站</h1>
    </header>    
    <div class="container">
        <h2>关于我们</h2>
        <p>这是一个简单的网页示例,展示了HTML和CSS如何一起工作来构建网页结构和样式。</p>
    </div>
</body>
</html>

其中h几表示几级标题,p标签表示一个段落

之后我们把文件后缀改为html,然后双击打开,展示如下;

三、相关概念

(1)节点和节点树

在HTML中,我们把所有的标签内容都看出节点

而所有的节点构成了节点树(HTML DOM树)

至于节点树的构成,相信如果你如果看了第二部分就明白了,其构成如下:

最顶端的节点称之为根节点

每个节点(如果有的话)上一个节点称为父节点,下一个节点称为子节点。

同级的子节点称为兄弟节点

这些概念同理于 树 部分概念

(2)选择器

在说到CSS时,我们提到了选择器,那么这是什么呢?

首先,选择器是用来定位节点的

比如,我们之前通过div来确定了一个id为word的节点

那么我们要去定位这个id,有三个常用办法:

第一,类选择器,以“ . ”开头

.word {
    background-color: yellow;
}

这会选中所有 class="word" 的元素,并给它们加上黄色背景。

第二,ID选择器,以“#”开头

#word {
    font-size: 24px;
}

这会选中具有 id="word" 的元素,并将字体大小设置为 24px。

第三,元素选择器,选择所有指定标签的元素

p {
    color: blue;
}

这会选中页面中的所有 <p> 标签,并将它们的文字颜色设置为蓝色。


常见的 CSS 选择器及其语法规则,汇总如下:

元素选择器

  • 选中指定标签的所有元素。

    p { color: red; }
    这会选中页面中的所有 <p> 元素并将它们的文字颜色设置为红色。

2. 类选择器

  • 选中所有具有指定类的元素。类选择器以 . 开头。

    .highlight { background-color: yellow; }
    这会选中所有 class="highlight" 的元素,并为它们设置黄色背景。

3. ID 选择器

  • 选中具有指定 ID 的元素。ID 选择器以 # 开头。

    #header { font-size: 24px; }
    这会选中 ID 为 header 的元素,并将字体大小设置为 24px。

4. 通配符选择器

  • 选中所有元素。

    * { margin: 0; }
    这会把页面中所有元素的外边距(margin)设置为 0。

5. 后代选择器

  • 选中某个元素内部的所有指定子元素。空格表示层级关系,选中某个元素的所有后代元素。

    div p { color: blue; }
    这会选中所有位于 <div> 内部的 <p> 元素,并将它们的文字颜色设置为蓝色。

6. 子元素选择器

  • 选中某个元素的直接子元素,使用 > 符号表示。

    div > p { color: green; }
    这会选中所有直接位于 <div> 元素内部的 <p> 元素,而不会选中更深层嵌套的 <p> 元素。

7. 并列关系选择器(兄弟选择器)

  • **相邻兄弟选择器 (+)**:选中某个元素后紧跟的第一个兄弟元素。

    h1 + p { color: orange; }

    这会选中紧接在 <h1> 元素后面的第一个 <p> 元素。

  • **通用兄弟选择器 (~)**:选中所有在指定元素后面的兄弟元素。

    h1 ~ p { color: purple; }

    这会选中所有位于 <h1> 后面的 <p> 元素。

8. 属性选择器

  • 根据元素的属性和属性值来选择元素。

    input[type="text"] { border: 1px solid black; }
    这会选中所有 type="text" 的 <input> 元素,并给它们加上黑色边框。

9. 伪类选择器

  • 选择元素的特定状态。

    • :hover:当鼠标悬停在元素上时应用样式。

      a:hover { color: red; }

    • :first-child:选中某元素是其父元素的第一个子元素。

      p:first-child { font-weight: bold; }

10. 伪元素选择器

  • 选中元素的特定部分,如首字母、首行等。

    • ::before:在元素的内容前插入内容。

      p::before { content: "Note: "; font-weight: bold; }

    • ::after:在元素的内容后插入内容。

      p::after { content: "."; }

11. 组合选择器

  • 多个选择器结合起来使用,达到更精确的选中效果。
    • 后代选择器div p,选中 <div> 内的所有 <p> 元素。
    • 类和元素选择器组合p.highlight,选中所有同时拥有 highlight 类的 <p> 元素。

12. 通用选择器

  • **:not()**:选中所有不符合某种条件的元素。

    p:not(.special) { color: blue; }
    这会选中所有不具有 special 类的 <p> 元素,并将它们的颜色设置为蓝色。

13. 组选择器

  • 通过逗号 , 组合多个选择器,用于多个元素应用相同样式。

    h1, h2, h3 { color: black; }
    这会将 <h1><h2><h3> 元素的文字颜色设置为黑色。


http://www.kler.cn/a/524709.html

相关文章:

  • 17、Spring MVC 框架:构建强大的 Java Web 应用程序
  • Charles 4.6.7 浏览器网络调试指南:流量过滤与分析(六)
  • wow-agent---task4 MetaGPT初体验
  • Baklib引领企业内容中台建设的新思路与应用案例
  • 【Rust自学】16.3. 共享状态的并发
  • linux通过deb包安装(命令模式)
  • shell脚本批量修改文件名之方法(The Method of Batch Modifying File Names in Shell Scripts)
  • Android开发入门
  • 【华为OD-E卷 - 转骰子 100分(python、java、c++、js、c)】
  • Ollama windows安装
  • 记录一次,PyQT的报错,多线程Udp失效,使用工具如netstat来检查端口使用情况。
  • 机器人抓取与操作经典规划算法(深蓝)——2
  • Typescript详解
  • CS231n-多分类SVM
  • Linux网络 | 理解TCP面向字节流、打通socket与文件的关系
  • 如何用matlab画一条蛇
  • 【漫话机器学习系列】068.网格搜索(GridSearch)
  • pytorch逻辑回归实现垃圾邮件检测
  • 【综合决策模型】考虑生命周期评估LCA 与多目标优化MOO的综合决策模型MOOLCA
  • 3、C#基于.net framework的应用开发实战编程 - 实现(三、三) - 编程手把手系列文章...
  • Cesium ArcGisMapServerImageryProvider API 介绍
  • 【java学习笔记】@Autowired注解 使用方法和作用 | 配合@Component注解使用 | IOC控制反转
  • 最优化问题 - 内点法
  • JavaScript系列(50)--编译器实现详解
  • 【Go语言圣经】第五节:函数
  • Vue.js组件开发-如何实现异步组件