理数据
前面我们说过了通过 requests 库获取数据,这里我们要说如何处理数据
处理数据我们需要用到一个强大的第三方库——BeautifulSoup !
“美味的汤,绿色的浓汤,在热气腾腾的盖碗里装!谁不愿意尝一尝,这样的好汤?晚餐用的汤,美味的汤!”
BeautifulSoup 库的名字取自刘易斯·卡罗尔在《爱丽丝梦游仙境》里的同名诗歌。就像它在仙境中的说法一样,BeautifulSoup 尝试化平淡为神奇。它通过定位 HTML 标签来格式化和组织复杂的网页源代码,用简单易用的 Python 对象为我们展现出 HTML 结构信息。
处理数据分为两步:
解析数据:将网页源代码解析成 Python 能“读懂”的格式
提取数据:将网页源代码中无关数据过滤掉,只提取出我们所需要的数据
解析数据
我们以豆瓣读书 Top250 为例,它的网址是:https://book.douban.com/top250。
我们来看看如何将其网页源代码解析成 BeautifulSoup 对象:
import requests
from bs4 import BeautifulSoup
headers={
'user-agent': 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_13_6) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/76.0.3809.132 Safari/537.36'
}
res=requests.get('https://book.douban.com/top250', headers=headers)
soup=BeautifulSoup(res.text, 'html.parser')
Tips:相比之前我们添加 headers 参数,这是为了应对豆瓣的反爬虫机制。
我们通过 from bs4 import BeautifulSoup 语句导入 BeautifulSoup,然后使用 BeautifulSoup(res.text, 'html.parser') 语句将网页源代码的字符串形式解析成了 BeautifulSoup 对象。
创建 BeautifulSoup 对象时需要传入两个参数,第一个参数是要解析的 HTML 文本,即网站源代码的字符串形式(res.text)。第二个参数是 解析HTML 的解析器,html.parser 是 Python 中内置的解析器,较为简单方便.
我们将网页源代码解析成了 BeautifulSoup 对象,如果我们将他打印出来会发现竟然和原来的网页源代码(也就是 res.text)一模一样!既然都一样,我们何苦费这么大力将网页源代码解析成 BeautifulSoup 对象 呢?
相比字符串,BeautifulSoup 对象 里有很多强大的方法和属性。通过这些方法和属性,我们就能方便快捷地提取出我们所需要的数据。
提取数据
BeautifulSoup 对象 里的方法和属性有很多,我们这里只提及其中最常用的一些,这些足以应付大多数场景。
find() 方法和 find_all() 方法
BeautifulSoup 对象 里的 find() 和 find_all() 是我们提取数据最常用的两个方法。借助它们,我们可以过滤掉 HTML 页面里的无用数据,轻松地找到我们需要的数据。
我们来看一下 find() 和 find_all() 的作用和区别:
我们可以通过例子来更好地理解他们:
假设我们获取到的网页源代码如下:
<div class="content">
<a href="https://douban.com">登录/注册</a>
<h1>豆瓣读书 Top 250</h1>
<div class="artile">
<a href="https://movie.douban.com">豆瓣电影</a>
<div class="item">
<a href="https://book.douban.com/subject/1770782/">追风筝的人</a>
</div>
<div class="item">
<a href="https://book.douban.com/subject/25862578/">解忧杂货店</a>
</div>
<div class="item">
<a href="https://book.douban.com/subject/1084336/">小王子</a>
</div>
</div>
</div>
soup=BeautifulSoup(res.text, 'html.parser')
print(soup.find('a'))
# 输出:<a href="https://douban.com">登录/注册</a>
print(soup.find_all('a'))
# 输出:[
# <a href="https://douban.com">登录/注册</a>,
# <a href="https://movie.douban.com">豆瓣电影</a>,
# <a href="https://book.douban.com/subject/1770782/">追风筝的人</a>,
# <a href="https://book.douban.com/subject/25862578/">解忧杂货店</a>,
# <a href="https://book.douban.com/subject/1084336/">小王子</a>
# ]
它俩的用法基本一样,都是传入 HTML 标签名称,返回符合该 HTML 标签的数据。区别是 find() 方法只返回第一个符合条件的标签,而 find_all() 方法返回所有符合条件的标签列表。他们的返回值分别是 BeautifulSoup 中的 Tag 对象 和由 Tag 对象组成的列表。(后面会提到)
除了传入 HTML 标签名称 外,这两个方法还支持传入 HTML 属性 进行筛选,返回符合条件的数据。举个例子:
# 查找 id='doubanapp-tip' 的 div 标签
soup.find('div', id='doubanapp-tip')
# 查找所有 class='rating_nums' 的 span 标签
soup.find_all('span', class_='rating_nums')
class 和 id 这两个 HTML 属性 具有很强的标识性,因此是数据筛选中最常用的两个属性,我们要重点关注。
Tips:因为 class 是 Python 中定义类的关键字,因此用 class_ 表示 HTML 中的 class。
通过 id、class 等 HTML 属性的筛选,我们就可以快速准确的找到我们需要的数据。当一个条件无法精确定位到我们想要的数据时,我们还可以传入多个 HTML 属性进行筛选,返回同时符合这些条件的数据。
我们再来看个例子:
# 查找 id='doubanapp-tip' 且 class='rating_nums' 的 div 标签
soup.find('div', id='doubanapp-tip', class_='rating_nums')
Tag对象
BeautifulSoup 将 HTML 中的元素封装成了 Tag 对象。和 BeautifulSoup 对象 一样,Tag 对象 里也有 find() 和 find_all() 方法。因此,我们可以不断地调用这两个方法,一层一层地找到我们需要的数据。我们还是以前面的 HTML 代码为例提取其中的书名:
<div class="content">
<a href="https://douban.com">登录/注册</a>
<h1>豆瓣读书 Top 250</h1>
<div class="books">
<a href="https://movie.douban.com">豆瓣电影</a>
<div class="item">
<a href="https://book.douban.com/subject/1770782/">追风筝的人</a>
</div>
<div class="item">
<a href="https://book.douban.com/subject/25862578/">解忧杂货店</a>
</div>
<div class="item">
<a href="https://book.douban.com/subject/1084336/">小王子</a>
</div>
</div>
</div>
我们可以看到,书名在 a 标签 中。但如果直接使用 soup.find_all(‘a’) 的话,第二行的“登录/注册”和第五行的“豆瓣电影”也会被获取到,因此我们需要将这些无效数据过滤掉。
我们分析一下不难发现,书名在 class=“item” 的 div 标签 里的 a 标签 内。我们只要先找到所有 class=“item” 的 div 标签,然后再找到其中的 a 标签 即可,因此我们可以像下面这样来获取书名的数据:
# 找到所有 class_='item' 的 div 标签
items=soup.find_all('div', class_='item')
for i in items:
# 找到 class_='item' 的 div 标签中的 a 标签
print(i.find('a'))
# 输出:
# <a href="https://book.douban.com/subject/1770782/">追风筝的人</a>
# <a href="https://book.douban.com/subject/25862578/">解忧杂货店</a>
# <a href="https://book.douban.com/subject/1084336/">小王子</a>
这样,我们就找到了所有书名的数据。此时返回的还是 Tag 对象。如果我们只想要书名和对应的链接呢?这就用到了 Tag 对象 的 text 属性和 HTML 属性名取值。
items=soup.find_all('div', class_='item')
for i in items:
tag=i.find('a')
# 获取 text 属性
name=tag.text
# 获取 href 属性值
link=tag['href']
print(name, link)
# 输出:
# 追风筝的人 https://book.douban.com/subject/1770782/
# 解忧杂货店 https://book.douban.com/subject/25862578/
# 小王子 https://book.douban.com/subject/1084336/
我们通过 Tag 对象 的 text 属性拿到了 a 标签里的文字内容,即 追风筝的人 等。然后我们通过和字典取值一样的方式,将 HTML 属性名 作为键,得到了对应属性的值。这里是以 href 属性为例,其他的 HTML 属性也同样可以。
我们来总结一下 Tag 对象 的常用属性和方法:
CSS选择器
有没有什么方法可以直接就找到我们需要的数据,而不用多次查找吗?
答案是肯定的,需要用到 CSS 选择器。
在 CSS 选择器中,# 代表 id,. 代表 class。比如:#login 表示 id=‘login’ 的所有元素,.item 表示 class=‘item’ 的所有元素。
我们也可以直接通过标签名选择对应的元素,比如:a 表示所有的 a 元素,p 表示所有的 p 元素。
它们也可以组合在一起,选择同时符合条件的元素,比如:a#login 表示所有 id=‘login’ 的 a 元素,p.item 表示所有 class=‘item’ 的 p 元素,#login.item 表示所有 id=‘login’ 且 class=‘item’ 的元素,.item.book 表示所有 class 同时为 item 和 book 的元素。
需要注意的是,选择同时符合条件的元素,选择器之间不能有空格,如果写成 .item .book 就是另一个意思了。这是新的知识点——子元素选择。
当两个选择器之间加了空格,表示子元素选择。还是以 .item .book 为例,它表示选择所有 class=‘item’ 的元素里面 class=‘book’ 的元素,即嵌套在 class=‘item’ 的元素里面 class=‘book’ 的元素。
这个嵌套可以是任意层级的,只要在里面就行,不要求直接嵌套在第一层。如果只需要直接嵌套在第一层符合条件的元素,可以用 > 分隔。比如:.item > .book。
来看个例子感受一下它们的区别:
from bs4 import BeautifulSoup
html='''
<div class="item">
<p class="book">小王子</p>
<div class="hot">
<p class="book">追风筝的人</p>
</div>
</div>'''
soup=BeautifulSoup(html, 'html.parser')
print(soup.select('.item.book'))
# 输出:[]
print(soup.select('.item .book'))
# 输出:[<p class="book">小王子</p>, <p class="book">追风筝的人</p>]
print(soup.select('.item > .book'))
# 输出:[<p class="book">小王子</p>]
了解了 CSS 选择器的基本语法后,我们来看看如何在 BeautifulSoup 中使用。
BeautifulSoup 对象 有一个 select() 方法,我们将 CSS 选择器 传进去即可直接找到我们需要的元素。上面查找在 class=“item” 的 div 标签 里的 a 标签 的代码就可以这样写:
items=soup.select('div.item a')
for i in items:
name=i.text
link=i['href']
print(name, link)
# 输出:
# 追风筝的人 https://book.douban.com/subject/1770782/
# 解忧杂货店 https://book.douban.com/subject/25862578/
# 小王子 https://book.douban.com/subject/1084336/
对于静态网页爬虫的过程,可以总结成下图:
我们现在对豆瓣top250中的前25个电影的名字以及名字进行爬取:
import requests
from bs4 import BeautifulSoup
headers={
'user-agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/101.0.4951.41 Safari/537.36 Edg/101.0.1210.32'
}
#首先对网页发出请求并获得响应
req=requests.get('https://movie.douban.com/top250',headers=headers)
#将网页的源代码形式解析
soup=BeautifulSoup(req.text,'html.parser')
#进行元素的第一次提取
result1=soup.select('.item .pic')
num=0
for i in result1:
num +=1
name=i.select('a img')[0]['alt']
link=i.select('a')[0]['href']
print(num,' ',name,link)
结果:
文章知识点与官方知识档案匹配,可进一步学习相关知识 , 免费领取有关于java面试题材料和讲解!
原文出处:https://blog.csdn.net/zyb18507175502/article/details/124636025?spm=1001.2100.3001.7377&utm_medium=distribute.pc_feed_blog_category.none-task-blog-classify_tag-5-124636025-null-null.nonecase&depth_1-utm_source=distribute.pc_feed_blog_category.none-task-blog-classify_tag-5-124636025-null-null.nonecase
HTML:htper text markup language超文本标记(标签)语言
由各种标签组成,用来制作网页,告诉浏览器如何显示页面
w3c:world wide web consortium万维网联盟,制定web技术相关标准和规范的组织,HTML技术hi由w3c制定的标准
两个版本:HTML4.0.1、HTML5.0-----通常H5
官网:http://www.W3shcool.com.cn
HTML文档是以.html或.htm结尾
记事本notepad、sublime、Notepad++、Dreamweaver、VScode、Webstorm等
使用步骤:
使用技巧:
常见的浏览器:IE浏览器微软、chrome谷歌浏览器、fifirefox火狐、safari苹果
浏览器的作用是读取html文件,并以网页的形式来显示
浏览器不会直接显示html标签,而是使用标签来解释网页的内容
一个完整的html标签的组成:
<标签名 属性名="属性值">内容</标签名>
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>标签</title>
</head>
<body bgcolor="red" text="blue">
html从入门到精通!
</body>
</html>
12345678910
属性值要用双撇号括起来,一般用双引号
根据标签是否关闭,分为,关闭型和非关闭型
<html></html>
<head></head>
<title></title>
非关闭型:没有结束标签
<meta>
<br>
<h1>....<h6>
根据标签是否独占一行,分为块级标签和行级标签
块级标签:显示为块状,独占一行
<h1>大家好</h1>
<hr>
行级标签:在行内显示,可与其他内容在同一行显示
<span></span>
注释在浏览器中不会显示,是用来标注解释html语句,但通过查看源代码的方式可以看到
语法:
<--注释内容-->
也称为特殊字符,用于显示一些特殊符号,如<>&空格等
语法:
<&实体字符的名称>
在html文档的第一行,使用<!DOCTYPE html>
声明HTML文档的类型用来告诉浏览器页面的文档嘞型,用来制定html版本的规范
目前基本上最常用的html5
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Document</title>
</head>
<body>
</body>
</html>
12345678910
1.基本标签
1.1 有序列表
ol:ordered listli:list item默认使用阿拉伯数字、从1开始标记,可以通过属性进行修改
· type属性:设置列表的符号标记、取值;数字1(默认)、字母(a或A)、罗马数字(i或I) · start属性:设置起始值,值必须是数字
1.2 无序列表
ul:unodered list
li:list item
默认情况下使用实心圆表作为符号标记,可以通过属性进行修改
· type属性:设置列表的符号标记、取值:disc实心圆(默认)、circle空心圆、square正方形、none不 显示项目符号
1.3 定义列表
dl:definition list
dt:definition title
dd:definition description
1.4 水平线标签
hr:horizontal
常用属性:
· color:颜色
两种方式:
颜色名称:如red、green、blue、white、black、pink、orange等
16进制的RGB表示法:Red、Green、Blue用法:#RRGGBB 每种颜色的取值范值0-255,转换为16 进制00-FF
如: #FF0000 红色 #00FF00绿色 #0000FF蓝色 #FFFFFF白色、#CCCCCC #FF7300桔色
· size:粗细,数值
· width宽度
两种写法:
? 像素:绝对值(固定值)
? 百分比:相对值,相对于水平线标签所在父容器宽度的百分比
· align对齐
? 取值:center居中 left right
1.5图像标签
img:image
常见的图片格式:.jpg .png .gif .bmp
常见的属性:
· src:source指定图片的路径(来源),必选叁数
如果图片与html源代码在同一个文件夹中,可以直接在src中写图片名称即可
习惯上,我们会将多个图片与html代码文档分别放在同一个文件夹project中的不同目录下,此时需要 在src中指定图片的路径为相对路径
路径的分类:
? · 相对路径
? 表示: ./当前路径
…/当前位置的上一级文件夹
? 提示:…/image
? · alt:当图片无法显示时显示的提示信息
? · title:当鼠标放到图片上时显示的提示信息
? · width和 height:设置图片的宽度和高度
默认图片以原始尺寸显示
? 如果只设置其中一个,则另一个会按比例缩放
? 如果同时设置宽和高,可能导致图片变形
? 两种写法:
? 像素:绝对值(固定值)
? 百分比:相对值,相对于父容器的尺寸的百分比
2.其他标签
为了更好语义化
3.头部标签
· meta定义网页的摘要信息,如字符编码,关键词,描述,作者等
· title定义网页的标题
· style定义内容css样式
· link引用外部css样式
· script定义或引用脚本
· base定义基础路径
默认以当前页面文件所在的位置为相对路径参照
4.标签嵌套
一个标签中嵌套另外一个标签
标签不能乱嵌套
浏览器渲染后显示的页面代码与编码时有所不同
chrome浏览器提供的开发工具:帮助开发人员查看和调试页面的
如何打开:
· Elements:从浏览器的角度来看页面,浏览器渲染页面时内部的结构
· console:控制台,显示各种警告和错误信息
· network:查看网络请求信息,浏览器向服务器请求了哪些资源,资源大小,
加载资源所消耗的时间
四、超链接
1.简介
使用超链接可以从一个页面跳转到另外一个页面,实现页面之间导航
当鼠标移动到超链接文本或图片时,鼠标箭头会变成一只小手
超链接有三种类型:
普通链接/页面间的链接,跳转到另一个页面 锚链接:链接到锚点(链接到同一个页面的指定位置) 功能链接:实现特殊功能(发邮件,下载)
2.基本用法
使用 标签来创建超链接
语法格式:
常用属性:
href:链接地址或路径,链接地址
world
链接文本或图片
1 2 3 4 5 1 target:链接打开的位置,取值
路径分类:
绝对路径 以根开始的路径
file:///D:/software/b.html https://www.baidu.com/img/bd_logo1.png
相对路径 相对于当前页面文件所在的路径,不是以根开始的路径 ./ 当前路径 …/ 当前位置上一级目录
3.锚链接
3.1简介
点击链接后跳转到某一个页面的指定位置(锚点anchor)
锚链接的分类:
页面内的锚链接 页面间的锚链接
3.2 页面内的锚链接
步骤:
3.3 页面间的锚链接
4.功能链接
5.URL
5.1 简介
URL:Uniform Resource Locator 统一资源定位器,用来定位资源所在的位置,最常见的就是网址
5.2 组成
一个完整的URL由8个部分组成:
协议:prococol 如 http:超文本传输协议,用来访问WEB网站Hyper text Transfer protocal https:更加安全的协议 SSL安全套接子层 ftp文件传输协议,用来访问服务器上的文件,实现文件的上传和下载File Transfer protocol file:文件协议,用来访问本地文件 主机名hostname服务器地址或服务器Netbios名称,如www.baidu.com ftp://10.255.254.254 端口:port位于主机名的后面,使用冒号进行分隔 不同的协议使用不同的端口,如http使用80端口,https使用的443端口,ftp使用20和21 如果使用的是默认端口,则端口可以省略 如果使用的不是默认端口,则必须指定端口http://59.49.32.213:7070/ 路径:path目标文件所在的路径结构,如:www.baidu.com/img/ 资源resource要访问的目标文件,如bd_logo1.png 查询字符串:query string 也称为参数 在资源后面使用?开头的一组名称/值
链接文本
链接文本
https://www.baidu.com/img/bd_logo1.png?name=tom&age=2&sex=male https://www.w3school.com.cn/html/html_quotation_elements.asp file:///C:/Users/Administrator/Desktop/project/code/09.%E5%B8%B8%E7%94%A8%E6%A0%87%E7%A D%BE3.html http://www.sxgjpx.net/ ftp://10.255.254.253/
1
1
1 2 3
4 5
名称和值之间以=分隔,多个之间用&分隔,如:name=tom&age=2&sex=male 锚点anchor,在资源后面使用#开头的文本,如#6 身份认证authentication,指定身份信息,如:ftp://账户:密码@ftp.bbshh010.com
五、表格
1.简介
表格是一个规则的行列结构,每个表格是由若干行组成,每行由若干个单元格组成
table row column
2.基本结构
2.1 table标签
用来定义表格
常用属性:
border:表格边框 默认为0 width/height:宽度/高度 bordercolor:边框的颜色 align:对齐方式,取值:left(默认) center居中 right居右 bgcolor:背景颜色 background:背景图片 cellspacing间距:单元格与单元格之间的距离 cellpadding边距:单元格中的内容到边界之间的距离
2.2 tr标签
用来定义行:table row
常用属性:
align:水平对齐 取值:left(默认) center right valign垂直对齐 取值:top center bottom bgcolor:背景颜色 background:背景图片
2.3 td标签
用来定义单元格,table data
常用属性:align、valign、bgcolor、background
注意:表格必须是由行组成,行必须由单元格来组成,数据必须放到单元格中
3.合并单元格
合并单元格也称为单元格的跨行跨列
两个属性:
rowspan 设置单元格所跨的行数 colspan 设置单元格所跨的列数
步骤:
六、表单
1.简介
表单是一个包含若干个表单元素的区域,用于获取琐类型的用户数据
表单元素是允许用户在表单输入信息的元素,如文本框、密码框、单选按钮、复选框、下拉列表、按钮等
2.表单结构
2.1表单语法
1
2.2form标签
用来定义表单,可以包含多个表单元素
常用属性:
action:提交数据给谁处理,即处理数据的程序,默认为当前页面 method:提交数据的方式或方法,取值:get(默认),post get和post的区别: get:以查询字符串的形式提交,在地址栏中能看到,长度有限制,不安全 post以表单数据组的形式进行提交,在地址栏中看不到,长度无限制,安全 enctype(encode type)编码类型:提交数据的编码,取值:application/X-www-form-urlencoded(默 认)、multipart/form-data(文件上传)
3.表单元素
大多数的表单元素都是使用 标签来定义的,通过设置属性type来定义不同的表单元素
1
3.1单行文本框
常用属性:
·name名称,很重要,如果没有定义name属性,则该表单元素的数据是无法提交的
·value初始值
·size显示宽度
·maxlength:大字符数,默认是没有限制
·readonly只读:readonly=“readonly”,可简写readonly,即只写属性名
·disabled禁用:disabled=“disabled”, 可简写disabled完全禁用
表单元素被提交的两个条件,1.有name属性2.非disabled
3.2 单选按钮
常用属性:
·name名称:多个radio的name属性必须相同,才能实现互斥(单选)
·value值
·checked:是否被选中,两种状态,选中,未选中 checked=“checked” 简写 checked
3.3 复选框
常用属性与单选按钮radio类似
3.4 文件选择器
常用属性:
·name:名称
·accept设置可选择的文件类型,用来限制上传的文件类型
使用MIME格式字符串对资源类型进行限制
常见的MIME类型:
·纯文本:text/plain text/xml text/html
· 图像:image/png image/jpeg image/gif
4.特殊表单元素
4.1下拉列表
select常用属性:
·name名称
·size行数,同时显示多个选项
·multiple允许同时选择多个
option常用属性:
·value选项值
·selected设置默认选中项
optgroup常用属性:
·label分组的标签
4.2文本域
·name名称
·rows行数
·cols列数
5、其他标签
5.1 label标签
为表单元素提供标签,当选中label标签中的文本内容时会自动将光标切换到与之相关联的表单元素。
常用属性:
·for必须将该属性值设置为与相关联的表单元素的Id属性值相同。
注:几乎所有HTML标签都具有id属性,且id值必须唯一。
5.2 button标签
也表示按钮,与input按钮类似
语法:
1按钮文字或图像
常用属性:
·type按钮的类型,取值: submit(默认)、reset、button
5.3 fieldset和legend标签
fieldset标签,对表单元素进行分组
legend标签,对分组添加标题
七、内嵌框架
1、简介
使用iframe可以在一个页面中引用另一个页面,实现复用、灵活
2、基本用法
语法:
1
常用属性:
· src:引用的页面
· width/height宽度/高度 ,像素或百分比
· frameborder是否显示边框,取值:1(yes) 0(no)—默认
· scrolling是否显示滚动条,取值:yes no auto
· name属性 为框架定义名称
3、在框架中打开链接
1
2
3链接的文本或图像
八、HTML5简介
1、发展
W3C于1992年12月发布了HTML4.0.1标准
W3C于2014年10月发布了HTML5标准
2、特点
· 取消了过时的标签,如font、center等,它们仅具有展示外观的功能
· 增加了一些更具有语义化的标签,如header、footer、aside等
· 增加了一些新功能标签,如canvas、audio、video
· 增加了一些表单控件,如email、date、time、url、search等
· 可以直接在浏览器中绘画(canvas),无需flash
· 增加了本地存储的支持
3、兼容性
http://caniuse.com
提供了各种浏览器版本对HTML5和CSS规范的支持度
九、HTML5新增内容
1、结构相关的标签
用来进行页面结构布局,本身无任何特殊样式,需要使用CSS进行样式设置
· article定义一个独立的内容,完整的文章
· section定义文档的章节、段落
· header文章的头部、页眉、标题
· footer文章的底部、页脚、标注
· aside定义侧边栏
· figure图片区域
· figcaption为图片区域定义标题
· nav定义导航菜单
结构标签只是表明各部分的角色,并无实际的外观样式,与普通div相同
2、语义相关的标签
2.1 mark标签
标注,用来突出显示文本,默认添加黄色背景
2.2 time标签
定义日期和时间,便于搜索引擎智能查找
2.3 details和 summary标签
默认显示summary中的内容,点击后显示details中的内容
注:并不是所有的浏览器都兼容,chrome、opera支持、Firefox、IE浏览器不支持
2.4 meter标签
计数仪,表示度量
常用属性:
· max定义大值,默认为1
· min定义小值,默认为0
· value定义当前值
· high定义限定为高的值
· low定义限定为低的值
· optimum定义佳值
规则:
当value大于high时为绿色
当value在low与high之间时为黄色
当value小于low时为红色
当value小于low时为绿色
当value在low与high之间时为黄色
当value大于high时为红色
2.5 progress标签
进度条,表示运行中的进度
常用属性:
· value定义当前值
· max定义完成的值
3.表单相关
3.1 新增表单元素
新增以下type类型:
· email接收邮箱
· url接收URL
· tel接收电话号码,目前仅在移动设备上有效
· search搜索文框
· number/range接收数字/数字滑块,包含min,max,step属性
· date/month/week/time/datetime日期时间选择器,兼容性不好
· color颜色拾取
作用:
· 具有格式校验的功能
· 可以与移动设备的键盘相关联
3.2新增表单属性
form标签的属性:
· autocomplete是否启动表单的自动完成功能, 取值:on(默认)、o?
· novalidate提交表单时不进行校验,默认会进行表单校验
3.3 新增表单元素的属性
新增表单元素属性:input/select/textarea等
· placeholder提示文字
· required是否必填
· autocomplete是否启用该表单元素的自动完成功能
· autofocus设置初始焦点元素
· pattern使用正则表达式(RegExp后面会讲解),进行数据校验
· list使文本元素具有下拉列表的功能,需要配合datalist和option标签一起使用
· form可以将表单元素写在form标签外面,然后通过该属性关联指定的表单
4、多媒体标签
4.1audio标签
在页面中插入音频,不同的浏览器对音频格式的支持不一样
audio常用属性:
· src音频文件的来源
· controls是否显示控制面板,默认不显示
· autoplay是否自动播放,默认不自动播放
· loop是否循环播放
· muted是否静音
· preload是否预加载,取值:none不预加载、auto预加载(默认)、metadata只加载元数据
如果设置了autoplay属性,则该属性无效
可以结合source标签使用,指定多个音频文,浏览器会检测并使用第一个可用的音频文件
4.2 video标签
在页面中插入视频,不同的浏览器对视频格式的支持不一样
用法与audio标签基本相同,增加属性:
· widht/height视频播放器的宽度/高度
· poster在视频加载前显示的图片
<html>
<body>
<tiele>HTML技术</tiele>
</body>
<body>
大家好,欢迎学习html技术!
</body>
</html>1234567
效果
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-h271e4v6-1593240920352)(C:\Users\lenovo\Desktop\新建文件夹\静态网页2\案例\result\案例1.png)]
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>标签</title>
</head>
<body text="blue">
标签的组成
<br>
html从入门到精通!
<hr>
<h1>标签的分类</h1>
<hr>
<h2>标签的分类</h2>
<hr>
<h6>标签的分类</h6>
<hr>
<span>哈哈</span>嘿嘿
</body>
</html>1234567891011121314151617181920212223
效果
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-jx6zJE1P-1593240920354)(C:\Users\lenovo\Desktop\新建文件夹\静态网页2\案例\result\案例2.png)]
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Document</title>
</head>
<body>
图书:<<HTML从入门到精通<<
<hr>
北京 上海 广州
<hr>
在HTML中用<表示<小于号
<hr>
“HTML语言” 或 &qout;HTML语言&qout;
<hr>
版权所有? 2000-2020 高教培训
<hr>
×关闭符号
</body>
</html>123456789101112131415161718192021222324
效果
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-nuFLl3hm-1593240920355)(C:\Users\lenovo\Desktop\新建文件夹\静态网页2\案例\result\案例3.png)]
(剩下的下期出)
原文链接:https://blog.csdn.net/WanXuang/article/details/106982782?ops_request_misc=%257B%2522request%255Fid%2522%253A%2522160513384519724835852804%2522%252C%2522scm%2522%253A%252220140713.130102334..%2522%257D&request_id=160513384519724835852804&biz_id=&utm_medium=distribute.pc_search_top_result.none-task-code-2~all~top_position~default-1-106982782-12.nonecase&utm_term=html
作者:WanXuang
出处:从CSDN
态网页与动态网页的区别在常见的形式上静态页面多数以html或xml结尾,这种通称为静态网页;
静态网页是以固定的链接形式出现,每一个网页都存到服务器上,无论是否有用户访问网站都会存在,也有利于搜索引擎的抓取;
动态网页多数是以asp或php结尾,最明显的特征就是链接后面会带有大量的参数和问号,因此我们判断是否为动态网页,最简单的方法就是看看链接后面有没有就可以了。
这种动态网页,实际上并不是独立存在于服务器上的网页文件,只有浏览者发出请求后,服务才会返回一个完整的网页。
动态链接后面的大量参数,可能会让搜索引擎的蜘蛛陷入死循环,虽然各大搜索引擎对外称蜘蛛也可以很好的处理动态url,网慧天下小编建议还是尽量不要使用动态页面。
*请认真填写需求信息,我们会在24小时内与您取得联系。