学习爬虫你敢说你一丁点前端都不会?两万字图文教会你HTML❤️熬夜整理&建议收藏❤️

Posted 孤寒者

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了学习爬虫你敢说你一丁点前端都不会?两万字图文教会你HTML❤️熬夜整理&建议收藏❤️相关的知识,希望对你有一定的参考价值。

 👻上一篇博文两万字博文教你python爬虫requests库,看完还不会我把我女朋友都给你【❤️熬夜整理&建议收藏❤️】被众多爬虫爱好者/想要学习爬虫的小伙伴们阅读之后,很多小伙伴私信我说——爬是会爬了,但是爬下来的都是网页源码数据,真心看不懂鸭!该怎么办?👻

 😬(苦笑)为了能让小伙伴们对日后所学的页面解析库理解更深,所以本博主又连夜加班加点,苦苦熬制本文,为大家深入全面的讲解一下常见的前端知识——学啥技术都是从底层抓起,万丈高楼平地起,它也是基于地基稳! 所以本文是比页面解析库要先一步总结给小伙伴们哦!😬

 😜在本篇博文中,本博主就带领小伙伴们认真地学习一下html(超文本标记语言)相关的必备知识(爬虫爬到数据之后解析页面数据你得多少能看懂页面结构!)——HTML是一门标记语言,标记语言由一套标记标签组成,学习HTML,就是学习标签。!😜

在这里插入图片描述


             重点来啦!重点来啦!! 💗💗💗

  相信有不少小伙伴已经通过我的上篇博文完全地学费了requests库,而本篇文讲解的HTML知识,将会使你日后解析爬取到的页面数据信手拈来哦~


❤️HTML必备知识详解❤️

这是几几年的雪都记不清了!

知识点补给站:
首先要普及的一个概念是一个网页组成部分:
	①HTML:用于定义网页里面有什么内容;
	②CSS:对内容进行排版;
		(1)找到要排版的内容————如何找到要排版的标签;
		(2)设置样式————标签都能设置哪些样式。
	③javascript:用于动态的控制页面。

第一部分:HTML框架简介

在这里插入图片描述

1.是什么&怎么学&用什么工具

(1)什么是HTML?

  1. HTML:(HyperText Markup Language)【超文本标记语言】
      狭义的HTML指的是网页;
      广义的HTML指的是前端技术(html,css,js,以及各种框架)——网页,移动端网页,小程序,公众号,移动端的app,快应用等。

  2. 详细介绍:
      HypertText:超文本——超出文本的范畴,简单地说,不仅仅是文本,还可以是图像,音频,视频,flash等等;
      Markup:标记——网页中会有很多标记,不同的标记有不同的含义和功能,标记也叫标签,Html会包含各种各样的标签,这些标签不能乱写,必须写w3c规范中包含的标签。

  3. 标签的举例:
      ①<body></body> -- 双标签
      ②<br> -- 单标签

在这里插入图片描述

(2)怎么学HTML?

  HTML是一门标记语言,标记语言由一套标记标签组成,学习HTML,就是学习标签。

(3)使用的工具:

  编辑器:pycharm(搞python的肯定得用pycharm!)
  浏览器:Firefox,Chrome(建议使用这俩哦!)

在这里插入图片描述

2.HTML的基本结构

在这里插入图片描述

3.HTML文件的规范

  1. html文件以开始,以结尾,其他任何标签,需要写在和之间;
  2. Html标签只包含两个子标签:head和body;
  3. 和网页设置相关的内容都写在head标签里;
  4. 需要显示的内容都写在body标签里;

在这里插入图片描述

4.HTML的基本模板

如果你再pycharm里新建一个html文件就会像下面这样!

<!DOCTYPE html>						#文档类型的声明
<html lang="en">					#根标签,即文档的开始。 lang(language),en(english)。声明语言类型是英语
<head>								#网页头部
    <meta charset="UTF-8">			#国际编码     meta配置  字符集编码的类型 
    <title>Title</title>			#网页标题
</head>
<body>								#网页的主体,可视化区域

</body>
</html>

知识点补给站:

  1. <!DOCTYPE html> 标签:作用:在html文件最前面进行声明,定义文档类型,告知浏览器用html规范去解析文档。
  2. 在pycharm中编写HTML文件时,<!-- 要注释的内容--> 为注释,快捷键是Ctrl+/。
  3. 在pycharm中编写HTML文件时,打标签时可直接打标签名,再Tab即可实现自动补全。 如:输入p,再Tab会自动补全为:<p></p>

在这里插入图片描述

第二部分:标签

  1. 什么是标签?
	由尖括号包裹单词构成,如:<html>,所以标签不可能以数字开头。
  1. 标签不区分大小写,但推荐小写。
  2. 标签可以嵌套,但不能交叉嵌套。
  3. 标签也称为元素。比如:行内标签亦可成行内元素。
错误示例:<a><b></a></b>
正确示例:<a><b></b></a>

在这里插入图片描述

1.标签的使用样式及属性

(1)标签的使用样式:

  1. 开始标签又称开放标签<a>标签体</a>结束标签又称闭合标签或关标签
  2. 自闭合标签/单标签,如:<meta charset="UTF-8">,<br>等
	单标签有两种写法:
			写法一:只写开标签即可<br>
			写法二:在开标签的结尾写一个/,如<br/>

(2)标签属性:

  • 通常为键值对形式出现,比如:<meta charset="UTF-8"> 里面的charset为标签的属性,对应的单引号或者双引号里的称为属性值;
  • 属性只能出现在开始标签和自闭合标签内,但不能出现在结束标签里;
  • 属性名字全部小写,属性值必须用单引号或者双引号包裹;
  • 如果属性名和属性值完全一样,直接写属性名即可,如:“readonly”(input标签属性)

在这里插入图片描述

(3)块状标签

在这里插入图片描述

第一部分知识点——块状标签的特点:

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>块状标签的特点</title>
</head>
<body>

	<!--块状标签的特点:(通过段落标签p进行说明)-->
	<!--1.设置宽高有效,以及外边距和内边距都可控制-->
	<!--2.在不设置宽度的情况下,宽度始终与父标签保持一致,与内容无关。是父标签容器的100%-->
	<!--3.可以独占一行,实现自动换行。一个段落标签不管多少内容都占一行-->
	<!--4.当多个块状标签写一起时,默认排列方式是从上向下-->
	<!--5.可以容纳内联元素和其他块元素-->
	<p style="width:100px; height:100px">这是个段落标签,我是块状标签</p>

</body>
</html>
知识点补给站: 1.px是像素,是长度单位; 2.在网页查看元素(ELements)显示的是宽度*高度。

第二部分知识点——常用的块状标签:

小知识点:网页的默认字号是1em(1em=16px)!

总共有四个:

  1. 标题标签;
	<!--第一个:标题标签。h1到h6  (一般放在文章的标题)  字体会加粗!-->
	<!-- h1字号是2em--32px;h2字号是1.5em--24px;h3字号是1.17em--18.72px;h4字号是默认字号16px;
		h5字号是0.83em--13.28px;h6字号是0.67em--换算应该是10.72px,但是网页有最小字号限制,所以会变为12px!   -->
	<h1>我是一级标签,一个网页只能有一个,别的可以有多个</h1>
	<h2>我是二级标签</h2>
  1. 段落标签;
	<!--第二个:段落标签。  大小跟四级标题标签一样 (会把HTML文档分割成若干个段落)-->
	<!-- p标签默认有段前段后间距--16px;但是段落标签并不会首行缩进! -->
	<p>我是段落标签</p>
  1. 列表标签:分为有序列表,无序列表和定义列表三大类;
	<!--第三个:列表标签-->
	
		<!--(1)有序列表-->
		<ol type="A" start="3">        <!--ol是order list的缩写。本行是有序列表的开始   
		type有五个选择——1:按1,2,3,4...显示序号(默认);
					  A:按A,B,C,D..显示序号;
					  a:按a,b,c,d..显示序号;
					  I:按I,II,III,IV,V..显示序号(罗马数字);
					  i:按i,ii,iii,iv,v..显示序号(罗马数字小写)。
									  start规定从第几个开始排-->
		    <li>这是有序列表1</li>
		    <li>这是有序列表2</li>
		    <li>这是有序列表3</li>
		</ol>
		
		<!--(2)无序列表-->
		<ul type="circle">             <!--ul是unorder list的缩写。本行是无序列表的开始
		可以设置none(空的),circle(空心圆),square(实心方块),disc(实心圆)[默认值]等样式-->
		    <li>这是无序列表1</li>	   <!-- 一个li代表一个列表项。 -->
		    <li>这是无序列表2</li>
		    <li>这是无序列表3</li>
		    <li>这是无序列表4</li>
		</ul>
		
		<!--(3)定义列表-->
		<dl>       					 <!--本行是定义列表的开始-->
		    <dt>水果</dt>        	 <!--代表一个大的列项-->
		    <dd>葡萄</dd>             <!--代表对上面列项的解释,即细分。-->
		    <dd>榴莲</dd>			 <!-- dd有缩进,dt没有缩进 -->
		
		    <dt>蔬菜</dt>
		    <dd>花菜</dd>
		    <dd>包菜</dd>
		</dl>
  1. div标签。
	<!--第四个:div标签:用来分划一个一个的区域
			         (width和height来规定区域大小;background-color是设置区域背景色)-->
	<!--div是一个纯净的块元素——所谓纯净意思是没有任何的默认样式。不宜过多使用。后期维护不好-->
	<!-- div最大的优势:布局,作为容器,承载其他标签,因为div没有默认样式,所以尽管用div包裹了标签,
					  但不影响标签的展示。 -->
	<div style="width:500px;height: 500px;background-color: #66a9fe;">我是一个div</div>
知识点补给站:

  如果嫌打列表标签太麻烦,可使用快捷方法:(n表示相应的标签的个数,直接输入下面语句Tab一下即可生成!)
在这里插入图片描述

深入讲解:emmet语法————快速敲代码小技巧之快速敲标签语法!

  1. *是乘的作用,后面跟一个数字,数字是几,就会生成几个标签!
    举例:
    在这里插入图片描述
    实现:
    在这里插入图片描述

  2. $可以代表一个数字,这个数字从1开始,逐步增大,通常和*连用。
    举例:
    在这里插入图片描述
    实现:
    在这里插入图片描述

  3. {}里面用于书写标签的文本内容。
    举例:
    在这里插入图片描述
    实现:
    在这里插入图片描述

  4. []里面用于书写属性名和属性值(如果不加属性值,则创建属性值为空的属性)
    举例①:
    在这里插入图片描述
    举例②:
    在这里插入图片描述

    实现①:
    在这里插入图片描述
    实现②:
    在这里插入图片描述

  5. >用于指示下一级标签,他们构成父子关系(包含关系)
    举例:
    在这里插入图片描述

    说明:
    在这里插入图片描述

  6. +在当前标签的后面生成一个平级的标签(兄弟关系)
    举例:
    在这里插入图片描述
    实现:
    在这里插入图片描述

  7. #a生成一个id位a的div标签

    举例:
    在这里插入图片描述
    实现:
    在这里插入图片描述

  8. 综合使用:
    举例①:
    在这里插入图片描述

    实现①:
    在这里插入图片描述
    举例②:
    在这里插入图片描述
    实现②:
    在这里插入图片描述
    举例③:
    在这里插入图片描述
    实现③:
    在这里插入图片描述
    举例④:
    在这里插入图片描述
    实现④:
    在这里插入图片描述
    举例⑤:
    在这里插入图片描述
    实现⑤:
    在这里插入图片描述

(4)内联标签(行内标签)

在这里插入图片描述

第一部分知识点——内联标签的特点:

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>内联标签,又称行内标签的特点</title>
</head>
<body>

	<!--内联标签的特点(通过文本标签span说明)-->
	<!--1.设置宽高无效,以及外边距和内边距都无法控制-->
	<!--2.宽度就是其文字或者图片宽度,无法控制-->
	<!--3.不会进行自动换行,只有本行放满才会放下一行-->
	<!--4.当多个内联标签写在一起时,默认排列方式是从左往右-->
	<!--5.内联元素只能容纳文本或者其他内联元素-->
	<span>我是个文本标签</span>

</body>
</html>

第二部分知识点——常用的内联标签:

总共有四种:

  1. 图片标签
	<!--第一个:图片标签  img + Tab-->
	<img src="" alt="" width="" height="">   <!--src是图片的地址,可以直接是网页里的图片地址,
											也可以是本地图片的地址(推荐使用相对路径——相对的含义:图片相对于Html文件的位置,参照物是html文件!-->
		                      <!-- alt是当图片加载失败时显示的内容-->
							  <!-- width是图片宽度;height是图片高度。不指定按原图大小显示注意。:如果二者只指定一个,另外一个会等比例缩放 -->
		                      <!-- img不是块元素(block),也不算行元素(inline),它是行级块元素(inline-block)  -->
  1. 粗体/斜体标签
	<!--第二个:粗体/斜体标签   b+ Tab  i+ Tab -->
	<b>我是粗体</b>
	<i>我是斜体</i>
  1. 超链接标签
	<!--第三个:超链接标签     _self本身网页上打开;_blank打开一个新网页-->
	<a href="" title="超链接的一个说明(鼠标放上会显示的文本)" target="_self">我是超链接</a>   					
						   <!--href里可以写网址,可以写文件路径-->
						   <!-- 如果href="" 那么点击后会刷新当前网页,而且会回到顶部 -->
						   <!-- 如果href="#" 那么点击后,会回到顶部,但不会刷新页面 -->
						   <!-- 如果href="#锚点" 那么点击后,会跳到指定的锚点处(锚点其实就是一个id值)! -->
  1. 文本标签
	<!--第四个:文字标签   和css配合使用才有用哦!-->
	<!-- span是一个纯净的行元素;所谓的纯净——没有任何默认样式; -->
	<!-- span最大的优势:设定样式,主要作用于行元素或者文字等 -->
	<span>我是文本标签</span>
知识点补给站第一站点:

如果图片标签里填的是本地图片的地址(相对路径):
  1.如果图片在同级目录下,直接: 当前目录名/图片名
或者: ./当前目录名/图片名
  2.如果图片在上级目录下,直接: . ./图片名

知识点补给站第二站点:

在这里插入图片描述
至于为什么要实现行内标签和块状标签的相互转换,小伙伴们在设置css样式时会get到这个点哦。
  比如:块状标签是不能放在一行了,但我们可以通过先转换为行内标签就可以了!!!

在这里插入图片描述

第三部分:特殊符号

(1)什么是特殊符号?

  特殊符号就是网页上一些比较特殊的符号。

(2)为什么需要特殊符号?

  因为有时候我们需要特殊符号,比如:把html代码显示在网页上。(你可以试试直接打是啥效果哦!)
  注意:如果打印空格,不管你输入了多少个空格,最后在网页上只显示一个!

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>特殊字符</title>
</head>
<body>

	<!--特殊符号以&开头,;结尾-->
	<span>这个是&nbsp;空格</span>
	<span>这是一个中文字的&emsp;宽度(字符宽)</span>
	<span>这是个大于号&gt;</span>
	<span>这是个小于号&lt;</span>
	<span>这是一个双引号:&quot;</span>
	<span>这是个特殊符号,输出是©。&copy;</span>
	<span>这是个特殊符号,输出为&&amp;</span>

</body>
</html>

第四部分:表格

(1)什么是表格?

  比如Excel表格之类的。

(2)表格如今用来干啥?

  一般用于后台展示数据。

(3)表格初识

  分为:表头,表身和表脚。

需要注意的是:
  table:是表格标签
  tr: 是行标签
  td: 是列表签

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>表格</title>
</head>
<body>

<table border="1">					  <!--border是设置边框,属性值为粗细-->		
    <caption>学生信息表</caption>       <!--表格标题-->
    <tr>
        <th>学号</th>           		  <!--表头 (在tr行标签中用th) 默认字体加粗-->
        <th>姓名</th>
    </tr>

    <tr>
        <td colspan="2">1</td> 	  	 <!--colspan是合并列-->
        <td rowspan="2">2</td>   	 <!--rowspan是合并行-->
    </tr>
    <tr>
        <td>3</td>
        <td>4</td>
    </tr>
</table>

</body>
</html>

实现效果:

在这里插入图片描述

第五部分:表单 (很重要哦!!!)

在这里插入图片描述

1.是什么&什么作用&哪些应用

(1)表单是什么?

  表单是搜集用户数据信息的各种表单元素的集合区域。(还记得请求方式GET和POST不!!!)

(2)表单的作用?

  ①用于收取用户数据,并向后台发送;
  ②前后端交互的方式之一。

(3)表单的应用?

  登录注册,搜索,文件上传等。

2.表单(form)的属性:

  1. action: 提交时候的地址,默认使用当前页面。指向服务器的某个程序。
  2. method: 提交时候的方法,默认使用get
    在这里插入图片描述
  3. entype: 目前使用默认即可
    在这里插入图片描述

3.表单常用的标签:

  1. Input标签:表单中使用频率最高的标签,没有之一!
  2. textarea标签:文本域,一般用于多行文本;
  3. select标签:下拉框,一般用于选项。

(1)input标签:

1.input标签的常用属性:

知识点补给站: id主要用于样式或者js。不能用中文或者数字。主要用于表达唯一性!(在日后的页面解析能用id匹配就用id匹配的原因就在于其的唯一性!)
  • ①name属性:表单提交项的键,与id不同,name属性是和服务器通信时使用的名字(要求input标签都必须有),而id属性是浏览器端使用的名字,该属性主要方便客户编程而在css和js中使用;
  • ②value属性:表单提交项的值,单选多选下拉框必须设置value属性,这样后台才能获得你选中的到底是哪个或哪几个选项;

实战一——代码说明type属性值为image的情况:

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Title</title>
</head>
<body>

<form action="">
    <!--type属性值为image时是一个图片形式的提交按钮。 -->
    <!--src属性放图片地址;alt属性使图片变为可点击的,跟提交按钮作用一样,同时图片发生错误时显示alt的属性值-->
    <input type="image" src="girl.jpg" alt="submit">
</form>


</body>
</html>
  • ③placeholder:提高用户体验度;
  • ④readonly:只读;(比如你无法对你的QQ号进行操作)
  • ⑤disabled:禁用;(比如你在使用pycharm时有些选项是灰白色的无法使用)

实战二——代码说明readonly属性和disabled属性的作用:

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Title</title>
</head>
<body>

<form action=❤️搞Python,你敢说你不会logging模块?❤️

❤️ 教你零基础安装 Oracle 数据库,你敢说你还不会?⭐️

❤️ 教你零基础安装 Oracle 数据库,你敢说你还不会?⭐️

Android开发热门前沿知识,这几点经常被忽略,你敢说你都知道?

这个Maven依赖的问题,你敢说你没遇到过

这个Maven依赖的问题,你敢说你没遇到过