爬虫基础:Web网页基础

爬虫基础:Web网页基础

  • 前言
  • Web网页基础
    • 网页的组成
    • 网页的结构
    • 节点树及节点间的关系
    • 选择器

前言

  • 用浏览器访问不同的网站时,呈现的页面各不相同,你有没有想过为何会这样呢?了解一下网页的组成、结构和节点等内容。了解这些内容有助于我们进一步了解爬虫的基本原理。
  • 由于本人水平有限,难免出现错漏,敬请批评改正。
  • 更多精彩内容,可点击进入Python日常小操作专栏、OpenCV-Python小应用专栏、YOLO系列专栏、自然语言处理专栏或我的个人主页查看
  • 基于DETR的人脸伪装检测
  • YOLOv7训练自己的数据集(口罩检测)
  • YOLOv8训练自己的数据集(足球检测)
  • YOLOv5:TensorRT加速YOLOv5模型推理
  • YOLOv5:IoU、GIoU、DIoU、CIoU、EIoU
  • 玩转Jetson Nano(五):TensorRT加速YOLOv5目标检测
  • YOLOv5:添加SE、CBAM、CoordAtt、ECA注意力机制
  • YOLOv5:yolov5s.yaml配置文件解读、增加小目标检测层
  • Python将COCO格式实例分割数据集转换为YOLO格式实例分割数据集
  • YOLOv5:使用7.0版本训练自己的实例分割模型(车辆、行人、路标、车道线等实例分割)
  • 使用Kaggle GPU资源免费体验Stable Diffusion开源项目

Web网页基础

Web网页基础主要包括网页的构成元素以及相关的开发技术。

首先,网页通常由结构、样式和行为这三个方面组成。具体来说,结构由HTML(Hyper Text Markup Language,超文本标记语言)来定义,它用于描述网页的内容和结构,并通过标签来定义元素,如标题、段落、链接等。样式则由CSS(Cascading Style Sheets,层叠样式表)来负责,它描述了网页的呈现方式,包括颜色、字体、布局等。而行为则通过JavaScript来实现,它负责网页的交互和动态效果。

在网页开发中,还需要掌握一些前端框架和工具,如Angular、React、Vue.js等,它们提供了一系列工具和组件,简化了前端应用程序的开发。同时,为了确保数据传输的安全性,SSL/TLS技术也常用于加密Web传输中的数据。

此外,后端开发技术也是Web网页基础的重要组成部分,包括服务器端语言(如PHP、Python、Ruby、Java等)用于处理客户端发送的请求并生成动态网页内容,以及数据库用于存储和管理应用程序的数据。

总的来说,Web网页基础涉及多个方面,包括HTML、CSS、JavaScript等前端技术,以及后端开发技术和数据库等。掌握这些基础知识对于开发一个功能完善、用户体验良好的Web应用至关重要。

网页的组成

网页的组成主要包括以下几个部分:

  1. 文本:这是网页的主要内容,包括标题、段落、列表、链接等。文本内容通过HTML标签进行描述和定位,使浏览器能够正确地解析和显示。

  2. 图片:图片是网页中常见的元素,用于展示各种视觉信息,如产品图片、背景图、图标等。HTML中使用<img>标签来插入图片,并可以通过属性指定图片的URL、大小等。

  3. 音频和视频:随着多媒体技术的发展,音频和视频也逐渐成为网页中不可或缺的元素。HTML5引入了<audio><video>标签,使得在网页中嵌入音频和视频文件变得更加简单。

  4. 超链接:超链接是网页的重要组成部分,它允许用户点击后跳转到其他网页或网站。HTML中使用<a>标签来创建超链接,通过href属性指定链接的目标地址。

  5. 表格:表格用于展示数据,可以清晰地排列和比较信息。

  6. 表单:表单是网页中用于收集用户输入信息的元素,如搜索框、登录框等。HTML中使用<form>标签来创建表单,并通过各种输入类型(如文本框、单选框、复选框等)来收集用户数据。

  7. 框架:框架可以将一个浏览器窗口划分为多个区域,每个区域可以独立加载不同的网页。虽然框架在早期的网页设计中较为常见,但现代网页设计中较少使用,因为框架会影响网页的可访问性和响应性。

除了以上基本元素外,网页的组成还可能包括各种插件、脚本(如JavaScript用于实现交互效果)、CSS样式表(用于控制网页的外观和布局)等。这些元素共同构成了网页的完整内容和功能。同时,随着Web技术的不断发展,新的元素和特性也在不断被引入到网页设计中。

网页的结构

网页的结构主要由以下几个关键部分组成:

  1. 页面结构:页面结构主要包括导航栏、栏目以及正文内容。

    • 导航栏:导航栏是网站频道入口的集合区域,相当于网站的菜单,用户可以通过导航栏快速找到所需的信息或页面。
    • 栏目:栏目是指网页中存放相同性质内容的区域。通过对内容进行合理的分类和组织,栏目可以帮助用户更快速地获取所需信息。
    • 正文内容:正文内容是页面的主体部分,如文章、产品介绍等。这部分内容通常与页面的主题紧密相关,是用户访问页面时最关注的部分。
  2. 布局结构:网页的布局结构决定了页面元素的排列和组合方式,常见的布局结构有右框型、目字型、曰字形对称等。

    • 右框型布局:顶部为网站Logo和banner,下方左侧为菜单,右侧为主要内容。这种布局结构清晰明了,适合初学者。
    • 目字型布局:在右框型布局的基础上,增加一个竖列,缩小中间内容的宽度,并将菜单和导航集中在上方和下方横列中。
    • 曰字形对称布局:具有强烈的反差对比和视觉冲击力,可以是上下对称或左右对称。
  3. HTML标签:HTML是构成网页的基础,通过HTML标签可以描述网页的结构和内容。HTML标签分为块级元素和内联元素,块级元素如<div><p>等,用于定义页面中的区块;内联元素如<span><a>等,用于定义页面中的文本或其他内联内容。

  4. CSS样式:CSS用于控制网页的样式和布局,包括颜色、字体、边距、背景等。通过CSS,可以实现对网页的精细化控制,使其呈现出美观、易用的界面。

  5. 响应式设计:响应式设计是指网页能够根据设备的屏幕大小和分辨率自动调整布局和样式,以确保在各种设备上都能获得良好的用户体验。这通常通过媒体查询和百分比宽度等方式实现。

综上所述,网页的结构是一个综合性的概念,涉及页面元素的组织、布局、HTML标签和CSS样式等多个方面。一个合理的网页结构不仅能够提高用户体验,还有助于提升网站的搜索引擎排名和可访问性。

节点树及节点间的关系

节点树和节点间的关系是计算机编程和数据结构中常见的概念,尤其在处理如XML、HTML等树形结构的数据时。下面是对节点树和节点间关系的解释:

节点树

节点树是一种数据结构,用于表示层次关系或父子关系。在节点树中,每个节点可能有一个或多个子节点,而每个子节点只有一个父节点(除了根节点,它没有父节点)。这种结构允许我们以一种直观和有序的方式表示和访问数据。

在HTML或XML文档中,节点树是文档结构的直观表示。每个元素、属性、文本内容等都被视为一个节点,节点之间通过父子、兄弟等关系连接,形成一个整体的树形结构。

节点间的关系

  1. 父节点与子节点:在节点树中,一个节点(称为父节点)可以有一个或多个子节点。子节点是父节点下一级的节点。每个子节点都只有一个父节点,但一个父节点可以有多个子节点。
  2. 兄弟节点:拥有相同父节点的节点被称为兄弟节点。在节点树中,兄弟节点位于同一层级,并共享相同的父节点。
  3. 祖先节点与后代节点:从根节点到任意节点的路径上的所有节点都是该节点的祖先节点,包括根节点和该节点的所有父节点。而从任意节点到其叶子节点(没有子节点的节点)的所有节点都是该节点的后代节点,包括该节点本身和其所有子节点。

在编程中,理解和处理这些节点间的关系是非常重要的,因为它们允许我们有效地遍历和操作节点树,实现如搜索、插入、删除等操作。例如,在DOM(文档对象模型)操作中,我们可以使用这些关系来访问和修改HTML文档的结构和内容。

请注意,不同的编程语言和框架可能具有不同的术语和方法来表示和处理节点树及节点间的关系,但基本概念是相似的。

选择器

选择器是编程和网页开发中用于定位和操作特定元素的重要工具。其基本概念和用法在不同语境下可能有所差异,但核心功能都是根据一定的规则或模式来选取目标对象。

在CSS中,选择器用于选择需要添加样式的元素,确定HTML的树形结构中的DOM元素节点。它们有多种类型,如标签选择器、id选择器和类选择器。标签选择器通过标签名直接选中标签,对整个标签进行统一样式的更改。id选择器是对标签中的特定元素进行样式设定,进行针对性的更改,但id选择器具有唯一性,无法重复。类选择器则更为灵活和方便,可以在标签上定义class属性,并指定值,然后让这个值作为选择器来使用。

在JavaScript中,选择器同样是一种强大的工具,用于从HTML文档中选择和操作元素。常见的选择器类型包括ID选择器和类选择器。ID选择器使用元素的id属性来选择元素,而类选择器选择具有相同类名的元素。通过选择器,可以轻松地找到特定的元素,并对其进行各种操作,比如修改样式、添加事件监听器或者改变内容。

此外,在某些编程语境中,选择器也可以用于定义和处理节点树及节点间的关系。节点树是一种数据结构,用于表示层次关系或父子关系,而选择器则可以根据这些关系来定位和操作特定的节点。

总的来说,选择器在编程和网页开发中扮演着至关重要的角色,它们使得开发者能够精确地选择和操作目标元素,从而实现各种复杂的功能和效果。

在这里插入图片描述

  • 由于本人水平有限,难免出现错漏,敬请批评改正。
  • 更多精彩内容,可点击进入Python日常小操作专栏、OpenCV-Python小应用专栏、YOLO系列专栏、自然语言处理专栏或我的个人主页查看
  • 基于DETR的人脸伪装检测
  • YOLOv7训练自己的数据集(口罩检测)
  • YOLOv8训练自己的数据集(足球检测)
  • YOLOv5:TensorRT加速YOLOv5模型推理
  • YOLOv5:IoU、GIoU、DIoU、CIoU、EIoU
  • 玩转Jetson Nano(五):TensorRT加速YOLOv5目标检测
  • YOLOv5:添加SE、CBAM、CoordAtt、ECA注意力机制
  • YOLOv5:yolov5s.yaml配置文件解读、增加小目标检测层
  • Python将COCO格式实例分割数据集转换为YOLO格式实例分割数据集
  • YOLOv5:使用7.0版本训练自己的实例分割模型(车辆、行人、路标、车道线等实例分割)
  • 使用Kaggle GPU资源免费体验Stable Diffusion开源项目

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.rhkb.cn/news/280173.html

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

如何实现图片上传至服务器

在绝大多数的项目中都会涉及到文件上传等&#xff0c;下面我们来说一下技术派中是如何实现原生图片上传的&#xff0c;这个功能说起来简单&#xff0c;但其实对于技术还是有考验的。图片的上传涉及到IO读写&#xff0c;一个文件上传的功能&#xff0c;就可以把IO流涉及到的知识…

MySQL中的基本SQL语句

MySQL中的基本SQL语句 查看操作 1. 查看有哪些数据库 show databases; 2.切换数据库 use 数据库名;比如切换至 mysql数据库 use mysql;3.查看数据库中的表 show tables;4.查看表中数据 select 要查询的东西 from 表名 [ where 条件 ];select * from 表名…

极简生活|2024年让自己越来越好的18个极简好习惯

哈喽&#xff0c;你好啊&#xff0c;我是雷工&#xff01; 转眼间已经进入了2024年&#xff0c;新的一年&#xff0c;新的开始。 俗话说&#xff1a;百尺高台起于垒土&#xff0c;千里之堤毁于蚁穴。 好习惯积累的越多&#xff0c;坏习惯越来越少&#xff0c;我们的生活才能越…

echarts饼图图例换行

legend: {left: "5%",bottom: "10%",orient: vertical,}, 完整代码 option {tooltip: {trigger: item},legend: {left: "5%",bottom: "10%",orient: vertical,},// legend: [// {// x: left,// left:"5%",// bottom: …

在Linux环境底下 用C语言执行Python程序

在Linux环境底下 用C语言执行Python程序 文章目录 在Linux环境底下 用C语言执行Python程序1、环境安装&检测2、C语言调用Python语句2.1 直接调用python语句2.2 调用无参python函数2.3 调用有参python函数 1、环境安装&检测 通过C语言调用Python代码&#xff0c;需要先安…

matlab 混沌系统李雅普洛夫指数谱相图分岔图和庞加莱界面

1、内容简介 略 65-可以交流、咨询、答疑 2、内容说明 matlab 混沌系统李雅普洛夫指数谱相图分岔图和庞加莱界面 混沌系统李雅普洛夫指数谱相图分岔图和庞加莱界面 李雅普洛夫指数谱、相图、分岔图、庞加莱界面 3、仿真分析 略 4、参考论文 略

Java基础学习笔记三

环境变量CLASSPATH classpath环境变量是隶属于java语言的&#xff0c;不是windows操作系统的&#xff0c;和PATH环境变量完全不同classpath环境变量是给classloader&#xff08;类加载器&#xff09;指路的java A 。执行后&#xff0c;先启动JVM&#xff0c; JVM启动classload…

目标检测---IOU计算详细解读(IoU、GIoU、DIoU、CIoU、EIOU、Focal-EIOU、SIOU、WIOU)

常见IoU解读与代码实现 一、✒️IoU&#xff08;Intersection over Union&#xff09;1.1 &#x1f525;IoU原理☀️ 优点⚡️缺点 1.2 &#x1f525;IoU计算1.3 &#x1f4cc;IoU代码实现 二、✒️GIoU&#xff08;Generalized IoU&#xff09;2.1 GIoU原理☀️优点⚡️缺点 2…

浏览量这么低,还要不要继续坚持?

哈喽&#xff0c;你好啊&#xff0c;我是雷工&#xff01; 曾经在一个群里聊天&#xff0c;有群友看到我两位数的浏览量&#xff0c;说到&#xff1a;浏览量这么低还坚持什么&#xff1f; 浏览量低是事实&#xff0c;大多数是十几二十的&#xff0c;上百的都是少数&#xff0c…

ros小问题之差速轮式机器人轮子不显示(rviz gazebo)

在rviz及gazebo练习差速轮式机器人时&#xff0c;很奇怪&#xff0c;只有个机器人的底板及底部的两个万向轮&#xff0c;如下图&#xff0c; 后来查看相关.xacro文件&#xff0c;里面是引用包含了轮子的xacro文件&#xff0c;只需传入不同的参数即可调用生成不同位置的轮子&…

QT网络编程之获取本机网络信息

一.概述 查询一个主机的MAC地址或者IP地址是网络应用中常用到的功能&#xff0c;Qt提供了QHostInfo和QNetworkInterface 类可以用于此类信息的查询 1.QHostInfo 类&#xff08;显示和查找本地的信息&#xff09; 2.QNetworkInterface 类&#xff08;获得应用程序上所在主机的…

猜数字游戏有三变(Java篇)

本篇会加入个人的所谓‘鱼式疯言’ ❤️❤️❤️鱼式疯言:❤️❤️❤️此疯言非彼疯言 而是理解过并总结出来通俗易懂的大白话, 小编会尽可能的在每个概念后插入鱼式疯言,帮助大家理解的. &#x1f92d;&#x1f92d;&#x1f92d;可能说的不是那么严谨.但小编初心是能让更多人…

网络原理(3)——TCP协议

目录 一、连接管理 二、三次握手 1、何为三次握手&#xff1f; 2、三次握手有何意义&#xff1f; 三、四次挥手 三次握手和四次挥手的相似之处和不同之处 &#xff08;1&#xff09;相似之处 &#xff08;2&#xff09;不同之处 四、TCP的状态 建立连接&#xff1a; 断开…

docker一键部署若依前后端分离版本

比如这里把文件放到/xin/docker/jiaoZ/的目录下&#xff0c;jar包和下面的配置文件都放在这个文件夹下。 注意要把jar端口改为你实际启动的&#xff0c;映射端口也可以改为你想要的。 这里的映射端口为&#xff1a;nginx监听80端口&#xff0c;jar在8620端口&#xff0c;mysq…

【matlab安装casadi】

虽然安装起来很简单&#xff0c;但是网上没找到好的教程&#xff0c;姑且写一下记录一下 首先到github找到对应的库&#xff1a;https://github.com/casadi/casadi找到发布的版本&#xff0c;点进去 这里就可以点进去下载自己需要的版本了下面也有对应的下载后的安装方式&…

[python] 卡诺图化简

在温故数据合并的时候突然想起数电的 卡诺图. 根据合并一位不同的原则, 使用 python 做了一个实现, 感觉和QM算法不太一样: # 判断两个数是否只有一个二进制不一样 def nor(x1, x2):return x1^x2# 判断两个集合是否相邻, 只有一位不同 def is_track(x1, x2):ts [nor(x1[i],x…

计算机网络——物理层(编码与调制)

计算机网络——编码与调制 基带信号和宽带信号编码与调制数字数据编码为数字信号非归零编码归零编码反向不归零编码曼彻斯特编码差分曼彻斯特编码4B/5B编码 数字数据调制为模拟信号模拟数据编码为数字信号模拟数据调制为模拟信号 我们之前讲了物理层的一些基础知识和两个准则&a…

腾讯云服务器如何购买省钱?2024年优惠券和优惠活动整理

腾讯云代金券领取渠道有哪些&#xff1f;腾讯云官网可以领取、官方媒体账号可以领取代金券、完成任务可以领取代金券&#xff0c;大家也可以在腾讯云百科蹲守代金券&#xff0c;因为腾讯云代金券领取渠道比较分散&#xff0c;腾讯云百科txybk.com专注汇总优惠代金券领取页面&am…

【数据结构】猛猛干11道链表OJ(未完待续ing)

前言知识点 链表的调试技巧 int main() {struct ListNode* n1(struct ListNode*)malloc(sizeof(struct ListNode));assert(n1);struct ListNode* n2(struct ListNode*)malloc(sizeof(struct ListNode));assert(n2);struct ListNode* n3(struct ListNode*)malloc(sizeof(struc…

JVM学习-类加载

目录 1.类文件结构 2.类加载器 3.类加载的三个阶段 3.1加载 3.2链接 3.2.1验证 3.2.2准备阶段 3.2.3解析阶段 3.3初始化 4.拓展&#xff1a;反射 4.1获取类对象 4.2创建实例 4.3获取方法 4.4方法调用 1.类文件结构 2.类加载器 类加载器用来将类文件的二进制字节码加载到JV…