04.数据解析之css选择器

news2024/11/16 13:32:59

1、常见数据类型

结构化的数据是指可以使用关系型数据库表示和存储,表现为二维形式的数据。一般特点是:数据

以行为单位,一行数据表示一个实体的信息,每一行数据的属性是相同的。

1、1 结构化数据

​ 结构化的数据是指可以使用关系型数据库表示和存储,表现为二维形式的数据。一般特点是:数据
以行为单位,一行数据表示一个实体的信息,每一行数据的属性是相同的。

在这里插入图片描述

1、2 半结构化数据

非关系模型的、有基本固定结构模式的数据,例如日志文件、XML文档、JSON文档等。

http://www.bejson.com/jsoneditoronline/ 这个也是json文件。

在这里插入图片描述

1、3 非结构化数据

​ 顾名思义,就是没有固定结构的数据。各种文档、图片、视频/音频等都属于非结构化数据。对于这类数据,我们一般直接整体进行存储,而且一般存储为二进制的数据格式。

总结:

能看懂的就是结构化的数据,看不懂的,就是非结构化数据

2、HTML

  • HTML 指的是超文本标记语言 (Hyper Text Markup Language)是用来描述网页的一种语言。
  • H(很)T(甜)M(蜜)L(啦)
  • HTML 不是一种编程语言,而是一种标记语言 (markup language)
  • 标记语言是一套标记标签 (markup tag)

所谓超文本,有2层含义:

​ 1、因为它可以加入图片、声音、动画、多媒体等内容(超越文本限制

​ 2、不仅如此,它还可以从一个文件跳转到另一个文件,与世界各地主机的文件连接(超级链接文本
)。

<h1> 我是一个大标题 </h1>

一句话说出他们:

网页是由网页元素组成的 , 这些元素是利用html标签描述出来,然后通过浏览器解析,就可以显
示给用户了。

2、1 HTML骨架格式

日常生活的书信,我们要遵循共同的约定。

同理:HTML 有自己的语言语法骨架格式:(要遵循,要专业) 要求务必非常流畅的默写下来。

<html>
	<head>
		<title></title>
	</head>
	<body>
	</body>
</html>
html骨架标签总结
标签名定义说明
<html></html>HTML标签页面中最大的标签,我们成为 根标签
<head></head>文档的头部注意在head标签中我们必须要设置的标签是title
<titile></title>文档的标题让页面拥有一个属于自己的网页标题
<body></body>文档的主体元素包含文档的所有内容,页面内容 基本都是放到body里面的

课堂练习:

书写我们的第一个HTML 页面。

  1. 新建一个demo 的 TXT 文件。

  2. 里面写入刚才的HTML 骨架。

  3. 把后缀名改为 .HTML。

  4. 右击–谷歌浏览器打开。

    <html>
        <head>
        	<title>我的第一个页面</title>
        </head>
    	<body>
    		hello world !
    	</body>
    </html>
    

2、2 HTML标签关系

​ 主要针对于双标签 的相互关系分为两种: 请大家务必熟悉记住这种标签关系,因为后面我们标签嵌套特别多,很容易弄混他们的关系。

  1. 嵌套关系

    <head>
    	<title> </title>
    </head>
    

    2.并列关系

    <head></head>
    <body></body>
    

    倡议:

    如果两个标签之间的关系是嵌套关系,子元素最好缩进一个tab键的身位(一个tab是4个空格)。如果是并列关系,最好上下对齐。
    

    一句话说出他们:

    html双标签可以分为: 一种是 父子级 包含关系的标签 一种是 兄弟级 并列关系的标签

3、CSS选择器

​ 在 CSS 中,选择器是一种模式,用于选择需要添加样式的元素。那么我们就可以使用css选择器,
在html中找到数据所对应的标签。

选择器例子例子描述
.class.intro选择 class=“intro” 的所有元素。
#id#firstname选择 id=“firstname” 的所有元素。
**选择所有元素。
elementp选择所有

元素。

element,elementdiv,p选择所有
元素和所有

元素。

element elementdiv p选择
元素内部的所有

元素。

element>elementdiv>p选择父元素为
元素的所有

元素。

[attribute][target]选择带有 target 属性所有元素。
[attribute=value][target=_blank]选择 target=“_blank” 的所有元素。

3、1 标签选择器

​ 标签选择器其实就是我们经常说的html代码中的标签。例如html、span、p、div、a、img等等;比如我们想要设置网页中的p标签内一段文字的字体和颜色,那么css代码就如下所示:

# 简化的html标签
html = """
<!DOCTYPE html>
<html lang="en">
<head>
	<meta charset="UTF-8">
	<title>标签选择器</title>
</head>
<style>
	p{
		color: #f00;
		font-size: 16px;
	}
</style>
<body>
	<p>css标签选择器的介绍</p>
	<p>标签选择器、类选择器、ID选择器</p>
	<a href="https://www.baidu.com">百度一下</a>
	<span> 我是一个span标签</span>
</body>
</html>
"""
import parsel


selector = parsel.Selector(html)

span = selector.css('span').getall()
print(span)

3、2 类选择器

​ 类选择器在我们今后的css样式编码中是最常用到的,它是通过为元素设置单独的class来赋予元素样式效果。

使用语法:(我们这里为p标签单独设置一个class类属性,代码就如下所示)

# 简化的html标签
html = """
<!DOCTYPE html>
<html lang="en">
<head>
	<meta charset="UTF-8">
	<title>标签选择器</title>
</head>
<style>
	p{
		color: #f00;
		font-size: 16px;
	}
</style>
<body>
	<p class="top">css标签选择器的介绍</p>
	<p class="top">标签选择器、类选择器、ID选择器</p>
	<a href="https://www.baidu.com">百度一下</a>
	<span> 我是一个span标签</span>
</body>
</html>
"""
import parsel


selector = parsel.Selector(html)

p = selector.css('.top').getall()
print(p)

详细讲解:

​ 1、类选择器都是使用英文圆点(.)开头;

​ 2、每个元素可以有多个类名,,名称可以任意起名(但不要起中文,一般都是与内容相关的英文缩写)

3、3 ID选择器

ID选择器类似于类选择符,作用同类选择符相同,但也有一些重要的区别。

使用语法:

# 简化的html标签
html = """
<!DOCTYPE html>
<html lang="en">
<head>
	<meta charset="UTF-8">
	<title>标签选择器</title>
</head>
<style>
	p{
		color: #f00;
		font-size: 16px;
	}
</style>
<body>
	<p class="top" id="content">css标签选择器的介绍</p>
	<p class="top">标签选择器、类选择器、ID选择器</p>
	<a href="https://www.baidu.com">百度一下</a>
	<span> 我是一个span标签</span>
</body>
</html>
"""
import parsel


selector = parsel.Selector(html)

p = selector.css('#content').getall()
print(p)

详细讲解:

​ 1、ID选择器为标签设置id=“ID名称”,而不是class=“类名称”。

​ 2、ID选择符的前面是符号为井号(#),而不是英文圆点(.)。

​ 3、ID选择器的名称是唯一的,即相同名称的id选择器在一个页面只能出现一次;

3、4 组合选择器

可以多个选择器一起使用,就是组合选择器

3、5 伪类选择器

可以用 : 指定选择想要提取的第几个标签。

语法示例描述
:last-of-typep:last-of-type选择满足p语法元素的最后一个元素
:not(selector):not§选择所有p以外的元素
:nth-child(n)p:nth-child(2)选择满足p语法元素的第二个元素
:nth-last-child(n)p:nth-last-child(2)选择满足p语法元素的倒数的第二个元素

案例:

# 简化的html标签
html = """
<!DOCTYPE html>
<html lang="en">
<head>
	<meta charset="UTF-8">
	<title>标签选择器</title>
</head>
<style>
	p{
		color: #f00;
		font-size: 16px;
	}
</style>
<body>
	<p class="top" id="content">css标签选择器的介绍</p>
	<p class="top" id="content">标签选择器、类选择器、ID选择器</p>
	<a href="https://www.baidu.com">百度一下</a>
	<span> 我是一个span标签</span>
</body>
</html>
"""
import parsel
selector = parsel.Selector(html)
p = selector.css('p:nth-child(2)').getall()
print(p)

3、6 属性提取器

可以用 :: 提取标签包含的属性。

# 简化的html标签
html = """
<!DOCTYPE html>
<html lang="en">
<head>
	<meta charset="UTF-8">
	<title>标签选择器</title>
</head>
<style>
	p{
		color: #f00;
		font-size: 16px;
	}
</style>
<body>
	<p class="top" id="content">css标签选择器的介绍</p>
	<p class="top" id="content">标签选择器、类选择器、ID选择器</p>
	<a href="https://www.baidu.com">百度一下</a>
	<span> 我是一个span标签</span>
</body>
</html>
"""
import parsel
selector = parsel.Selector(html)
p = selector.css('p::text').getall()
print(p)
a = selector.css('a::attr(href)').get()
print(a)

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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

策略模式与模板方法结合案例

一、背景 上周在迁移项目MQ工程的时候&#xff0c;重新Review代码&#xff0c;发现有一段代码综合使用了策略模式和模板方法&#xff0c;下面讲解一下具体场景应用的思路。 二、模板方法 策略模式前段时间有一个关于库存具体案例&#xff0c;详见 库存管理与策略模式。 模板…

智能银行卡明细筛选与统计,轻松掌握账户总花销!

作为现代生活的重要组成部分&#xff0c;银行卡成为了我们日常消费和收入的主要途径。但是&#xff0c;当我们需要了解自己的银行卡账户的总花销时&#xff0c;繁琐的明细筛选和统计工作常常让人头疼。现在&#xff0c;让我们向您推荐一款智能银行卡明细筛选与统计工具&#xf…

基于SpringBoot的学生选课系统

基于SpringBoot的学生选课系统的设计与实现&#xff0c;前后端分离 开发语言&#xff1a;Java数据库&#xff1a;MySQL技术&#xff1a;SpringBootMyBatisVue工具&#xff1a;IDEA/Ecilpse、Navicat、Maven 前台主页 登录界面 管理员界面 教师界面 学生界面 摘要 学生选课系统…

halcon 数字识别

文章目录 素材交互选取区域阈值分割特征提取识别字符显示全部代码 素材 dev_get_window(WindowHandle) **读取图像 read_image(Image,C:/Users/Augustine/Desktop/1.png) **把图像转正&#xff0c;镜像方式 mirror_image(Image,ImageMirror,row) mirror_image(ImageMirror,Imag…

Python 无废话-基础知识面向对象编程详解

类定义 如何理解万物皆对象&#xff1f; 生活中一些事物&#xff0c;动物&#xff08;可爱的小狗、调皮的小猫&#xff09;、交通工具&#xff08;比亚迪U8汽车、飞机&#xff09;、人&#xff08;学生、教师&#xff09;…… 这些对象都有着独特或共性的属性和方法来描述其…

Android:实现Camera前后双摄

效果展示 一.概述 本博文讲解如何实现手机前后两颗摄像头同时预览并显示 我之前博文《OpenGLES&#xff1a;GLSurfaceView实现Android Camera预览》对单颗摄像头预览做过详细讲解&#xff0c;而前后双摄实现原理其实也并不复杂&#xff0c;粗糙点说就是把单摄像头预览流程写两…

Pytorch之MobileNetV3图像分类

&#x1f482; 个人主页:风间琉璃&#x1f91f; 版权: 本文由【风间琉璃】原创、在CSDN首发、需要转载请联系博主&#x1f4ac; 如果文章对你有帮助、欢迎关注、点赞、收藏(一键三连)和订阅专栏哦 前言 由于传统卷积神经网络&#xff0c; 内存需求大、 运算量大导致无法在移动…

多线程JUC

文章目录 多线程一.什么是多线程二.多线程的两个概念三.线程的实现方式四.常见的成员方法五.线程安全的问题六.死锁七.生产者和消费者 多线程 一.什么是多线程 进程:是程序的基本执行实体 理解:每一个运行的软件就是一个进程 线程:是操做系统能够进行运算调度的最小单位,它…

Halcon 从基础到精通-02- 开发基于HALCON的应用

HALCON的应用通过HDevelop应用来构建原型。HDevelop的开发主要有3种形式。 Start from Scratch: 手动通过脚本&#xff0c;把HDevelop的代码转化为一般的编程语言。如&#xff0c;上一节提到&#xff0c;其实&#xff0c;每个operators,也许并不一样&#xff0c;需要依据HALC…

开发工具箱 —— it-tools

文章目录 开发工具箱 —— it-tools安装访问效果 开发工具箱 —— it-tools 安装 docker 安装教程&#xff1a;在 CentOs7 中安装宝塔面板和 Docker&#xff08;包括MySQL&#xff0c;Redis&#xff09; docker 安装命令 docker run -d --name it-tools --restart unless-st…

[unity]保存文件的路径设置

序 比如&#xff0c;序列化了一个数组&#xff0c;保存到磁盘上。 原来的路径是"D://test.bin"&#xff0c;能跑&#xff0c;但是有点问题&#xff1a;序列化出来的文件和原项目离的太远&#xff0c;不好管理。 要是能保存到unity工程的文件夹里就好了。这个路径该…

c#设计模式-行为型模式 之 责任链模式

&#x1f680;简介 又名职责链模式&#xff0c;为了避免请求发送者与多个请求处理者耦合在一起&#xff0c;将所有请求的处理者通过前一对 象记住其下一个对象的引用而连成一条链&#xff1b;当有请求发生时&#xff0c;可将请求沿着这条链传递&#xff0c;直到有对象处理它为…

学员自述:上位机编程培训经历

、大家好&#xff0c;我是华山编程培训中心的学员 之前是从事PLC编程工作的&#xff0c;在C#语言这一块是零基础&#xff0c;之前也尝试过自学&#xff0c;但对于类啊继承啊堆栈这些基本的概念始终是无法理解&#xff0c;直到看到华山培训的视频&#xff0c;并参与朱老师的直播…

番外--命令操作

------------- task00: 00&#xff1a;常用文件目录类命令1-18.&#xff08;pwd&#xff1b; cd&#xff1b;ls&#xff1b; more&#xff1b;less&#xff1b;head&#xff1b;tail&#xff1b; mkdir&#xff1b;rmdir&#xff1b;cp&#xff1b;mv&#xff1b;rm&#xff1b…

pandas 笔记:asfreq

1 方法介绍 asfreq 是一个在 Pandas 时间序列数据分析中常用的方法。这个方法主要用于改变时间序列的频率。asfreq 可以帮助我们将一个时间序列从一个频率转换为另一个频率 2 基本用法 DataFrame.asfreq(freq, methodNone, howNone, normalizeFalse, fill_valueNone)3 参数说…

实验室超声波(提取)萃取技术有哪些实际的应用?

梵英超声(fanyingsonic)实验室超声波清洗机 超声波具有“空化现象”&#xff0c;“机械振动”以及“热效应”等特性。“空化现象”可产生瞬间几千个压力&#xff0c;使提取介质的微小气泡压缩、爆裂、破碎被提取原料和细胞壁&#xff0c;加速天然药用成分的溶出&#xff0c;“机…

微服务技术栈-Docker应用部署

文章目录 前言一、数据卷二、Docker 应用部署1、MySQL部署2、Tomcat部署3、Nginx部署4、Redis部署5、Kafka部署 总结 前言 之前文章讲到过&#xff0c;docker运行程序的过程就是去仓库把镜像拉到本地&#xff0c;然后用一条命令把镜像运行起来变成容器&#xff0c;接下来我们将…

虫情测报灯——一种农业虫情防治工具

KH-CQPest虫情测报灯是一种农业虫情防治工具&#xff0c;它可以通过光源或药物诱虫的方式&#xff0c;吸引害虫撞击撞击屏&#xff0c;通过远红外自动处理技术&#xff0c;无公害杀死害虫的同时保存害虫标本&#xff0c;利用高像素的摄像头拍照、农业四情测报平台识别害虫&…

简单两步实现离线部署ChatGPT,ChatGPT平替版,无需GPU离线搭建ChatGPT

文末附主程序安装包和大模型参数文件~ 演示效果如下图所示&#xff1a; 一、使用方法 软件主要分为两个部分&#xff1a;GPT4ALL软件主体&#xff08;主程序&#xff09;模型参数&#xff08;离线模型&#xff09;&#xff0c;如果使用API Key的话则不需要下载模型参数。 可以…

家居家纺经营配送小程序商城的作用是什么

家居家纺产品是每个家庭都必备的&#xff0c;无论商场还是小摊贩&#xff0c;市场中经营商家数量都比较多&#xff0c;而随着互联网电商发展&#xff0c;在实际经营中&#xff0c;传统线下商家也面临多个难题&#xff1a; 首先就是获客问题&#xff0c;线下渠道推广宣传方式单…