一、title 标签
<title>Atlassian | Software Development and Collaboration Tools</title>
网页标题
二、Meta 标签
-
name
属性存在时,提供文档级元数据,适用于整个页面。 -
http-equiv
属性存在时,提供与同名 HTTP 标头所提供的信息等效的信息。 -
chartset
属性,给出文档编码的字符编码。
2.1 name
name
与content
的组合方式中,name
的可选值
2.1.1 HTML 规范中定义的标准元数据名称
name 值 | content 值 | 含义 |
application-name | 正在运行的程序的名称。与 | |
author | 标注网页的作者 | |
description | 关于网站的一段描述信息 | |
generator | vscode | 网页的生产工具 |
keywords | 设置网页的关键字,利于 SECO 检索 | |
referrer | 文档发送请求时,控制 http 请求头 referrer 的值。 | |
color-scheme | normal light dark | 指定与文档兼容的一种或多种配色方案。 |
theme-color | 指示用户代理应该使用的建议颜色来自定义页面或周围用户界面的显示。 |
2.1.2 其他规范中定义的标准元数据名称
name 值 | content 值 | 含义 |
viewport | 提供有关视口初始大小的提示 |
2.1.3 其他元数据名称
比如WHATWG
定义的规范。
WHATWHG 是有苹果、谷歌、微软、Mozilla 组成的联盟,也是 DOM、HTML 的制定者,他们的规范实现往往比 W3C 要更早。WHATWG 简介 ,WHATWG 标准
me 值 | content 值 | 含义 |
creator | 文档创建者的名称,例如组织或机构。 | |
googlebot | Google 的索引爬虫. | |
publisher | 文档发布者的名称. | |
robots | 存在机器人、爬虫行为的页面应该定义这个字段。 |
2.2 http-equiv
http-equiv 值 | content 值 | 含义 |
content-security-policy | 内容策略主要指定允许的服务器来源和脚本端点,这有助于防止跨站点脚本攻击。 | |
content-type | 声明文档的 MIME 类型和字符编码。 | |
default-style | 设置默认 CSS 样式表集的名称。 | |
x-ua-compatible | IE=edge,chrome=1 | 如果指定,则 |
refresh | 5 url=http://www.zhiqianduan.com | 如果 content 只包含一个正整数,则为重新载入页面的时间间隔(秒); 如果 content 包含一个正整数,并且后面跟着字符串 ‘ |
content-language | de-DE, en-CA | 用来说明访问者希望采用的语言或语言组合,这样的话用户就可以根据自己偏好的语言来定制不同的内容。 |
expires | 31 Dec 2021 | 资源过期时间 |
window-target | _top | 强制页面在当前窗口以独立页面显示, 可以防止别人在 iframe 中调用自己的页面 |
pragma | no-cache | 禁止浏览器从本地计算机的缓存中访问页面的内容 |
set-cookie |
三、link 标签
指定当前文档和外部资源之间的关系。此元素最常用于链接样式表,但也用于建立站点图标(“favicon”样式图标和移动设备上主屏幕和应用程序的图标)等。
3.1 资源加载
样式表
<link href="main.css" rel="stylesheet" />
<!-- 媒体查询 -->
<link href="print.css" rel="stylesheet" media="print" />
<link
href="mobile.css"
rel="stylesheet"
media="screen and (max-width: 600px)"
/>
图标
<link rel="icon" href="favicon.ico" />
<link
rel="apple-touch-icon-precomposed"
sizes="114x114"
href="apple-icon-114.png"
type="image/png"
/>
字体
<link
rel="preload"
href="myFont.woff2"
as="font"
type="font/woff2"
crossorigin="anonymous"
/>
当 rel 的值为preload
,资源的加载优先级被提升到最高highest
3.2 ref 的值枚举
能够加载资源的标签,有a
,link
,area
,form
,具体的值参考Link types
ref 值 | href 值 | 含义 |
author | 定义指向描述作者或提供联系作者方式的页面的超链接 | |
dns-prefetch | 向浏览器提示需要资源,允许浏览器在用户单击链接之前进行 DNS 查找和协议握手。 | |
help | 表示超链接指向一个资源,该资源提供有关整个页面的进一步帮助。 | |
icon | 定义用于在用户界面中表示页面的资源,通常是一个图标。在浏览器中,它通常被称为网站图标。 | |
license | 表示超链接指向描述许可信息的文档。 | |
first、prev、next、last | 表示超链接指向当前页面所在序列的加载优先级 | |
manifest | 表示链接的文件是 Web App Manifest。PWA 应用会带有这个文件,会标识 name icon 等信息 | |
search | ||
stylesheet | CSS 样式表 | |
next | WebTV 支持使用 rel 值 next 来预加载文档系列中的下一页。 | 表示超链接指向当前页面所在序列的下一个资源。 |
prefetch | 建议浏览器提前获取链接的资源,因为它很可能是用户请求的。 | |
preload | 告诉浏览器下载资源,因为稍后在当前导航期间将需要此资源。 | |
search | 表示超链接引用了一个文档,该文档的界面是专门为在该文档或站点及其资源中搜索而设计的。 | |
tag | 表示超链接指的是描述适用于该文档的标签的文档。 |
3.3 其它常用属性
四、现有的插件库
4.1 单个节点文档解析
htmlparser2
- 按照标签开闭的原则解析
- 没有节点上下文的关系,需要根据进栈、出栈去判断父节点、子节点
4.2 AST 语法树
parse5
- 完整的 DOM 树,
- 每个节点有标明属性、父节点、子节点等
- 支持解析、序列化
html-parse-stringify
- 支持解析、序列化接口
4.3 带有 DOM 查询能力
node-html-parser
- 返回值为 HTMLElement
- 简单的 DOM 属性、查询接口
cheerio
- 返回值为 CheerioAPI。
- 带有类似 JQuery 的操作接口
4.4 带有执行、渲染能力
jsdom
jsdom
是一个纯 javascript 库,实现了许多 WEB 标准,尤其是WHATWG
的 DOM、HTML 标准。
- 返回值为 JSDOM。
- 模拟浏览器渲染,执行 stylesheet、script
- 支持 DOM 操作接口
puppeteer
Google 提供的一个 JS 库,可以操控 Chrome 内核