Python爬虫教程

第一章: 初学乍练-Python快速入门

第二章: 初窥门径-从全局把握网络爬虫

第三章: 爬虫数据-网页与JSON

第四章: 爬虫核心-HTTP协议

第五章: 手到擒来-数据的抓包

第六章: 利刃出鞘-HTTP请求库

第七章: 尘埃落定-数据的解析

第八章: 逆向初探-JS逆向

第九章: 爬虫进阶-Selenium, 中间人拦截

第十章:斗转星移-常用的反爬策略及应对方法

首页 > Python爬虫教程 > 第三章: 爬虫数据-网页与JSON > 3.1节: 超文本标记语言HTML

3.1节: 超文本标记语言HTML

薯条老师 2021-02-08 09:55:18 235862 0

编辑 收藏

广州番禺Python, Java小班周末班培训

薯条老师在广州做Python和Java的小班培训,一个班最多10人,学员的平均就业薪资有11K不在广州的同学可以报名线上直播班,跟线下小班的同学们同步学习。培训的课程有Python爬虫,Python后端开发,Python办公自动化,Python大数据分析,Python量化投资,Python机器学习,Java中高级后端开发。授课详情请点击:http://chipscoco.com/?cate=6

3.1.1 HTML与网页

HTML的英文全称为"Hyper Text Markup Language",中文释义为超文本标记语言。我们打开浏览器上网时,访问的每一个网页都是由HTML定义的, 可以这么说,一张网页对应一个HTML文件。

爬虫向HTTP服务器发起请求以后,服务器响应的通常是HTML格式的文本数据。在学习网络爬虫时,首先得掌握网页的HTML格式,这样方便对网页内容进行解析。

3.1.2 HTML中的标签

HTML是一种简单易学的标记语言,通过一系列标签将内容组织成具备层次化结构的树形结构文档。HTML使用<>符号将标签名括起来,每一个标签名表示一个特定的语义,比如p标签表示网页的一个段落,img标签表示网页的一张图片,a标签表示网页的一个超链接。

在最新的HTML规范中,标签名必须使用小写的形式。

HTML中的标签必须关闭,标签关闭有两种形式:

(1)单独成对的标签 (2)在<>内部使用/符号来进行关闭

单独成对的标签是指<标签></标签>的形式,在标签内部进行关闭的形式则为:<标签/>。HTML中的标签可包含0个或多个属性值对,语法形式为:name="value",属性值对以空格符号进行分隔,以HTML中的<p>标签为例:

<p id="python">python是一种简单易学的语言</p>

在HTML规范中,id用来定义唯一的属性,一个网页中只能存在一个唯一的id值。 而class定义的是同一类的属性,页面中的标签可以定义多个相同的class。HTML中的标签名,标签的关闭形式,标签的属性定义都有一套标准的规范,学习HTML主要是学习HTML中的标签及其语义。

3.1.3 HTML的总体结构

HTML文件最外围的标签为<html>。

代码实例:

<html>
</html>

在<html>内部,按其组成结构又可分为HTML head,HTML body,分别对应于<head>标签,<body>标签,类似于人体的头部,身体结构。

代码实例:

<html>
    <!-- head标签类似于人体的头部 -->
    <head>
    </head>
 
    <!-- body标签类似于人体的身体 -->
    <body>
    </body>
 
</html>

head标签用来定义文档的属性,而body标签用来组织网页的主体内容。head标签内的常用子标签:

标签名

 

标签关闭形式

标签的常用属性

描述

title

<title></title>


定义HTML文件的标题

link

<link />

(1) rel:用于设置对象和链接目的间的关系,常用的属性值为"stylehseet",表示一个样式表

(2) href:指定外部文件的路径

(3) type:指定外部样式文件的类型

定义了当前html文件所需使用的外部文件,通常用来链接css文件,链接的文件在href属性中进行定义。

meta

<meta />

(1) http-equiv:定义http的请求头部

(2) content:指定mime类型

(3) charset:指定网页的字符编码

定义html文档的元信息,例如网页的字符编码。

script

<script> </script>

(1)src:指定外部脚本文件的路径

定义了当前html文件使用的脚本,通常用来链接javascript文件。链接的文件在src属性中进行定义。

在本节内容中所介绍的HTML标签的常用属性,只需作了解即可。同学们在初学网络爬虫时,只需重点掌握网页的结构。

body中的子标签按其是否独占一行,又可分为块级标签和行级标签,块级标签会自动换行,行级标签与其它标签出现在同一行。

body标签内的常用子标签:

标签名

 

标签关闭形式

标签的常用属性

语义描述

h

<h1></h1>


块级标签,html定义了从h1到h6的标签,用来定义内容的标题,h后面的数字越大显示的字体越小

p

<p></p>


块级标签,标记当前内容为一个段落

div

<div></div>


块级标签,使用div标签用来将html文档分隔为多个分区

form

<form></form>

(1) action: 指定提交的服务器路径

(2) method:指定http请求方法,主要为get和post。

块级标签,定义html表单,用户在html表单中进行输入

ul

<ul>

</ul>


块级标签,使用ul来定义一个无序的列表,ul标签内部使用li标签来标记列表的内容

input

<input />

(1) type:表示输入框的类型,常用的类型为

text,password,button,submit,分别表示文本输入框,密码输入框,按钮框,提交框。

(2) name:输入值的别名,在后端代码中通过name来对输入值进行引用

行级标签,对应于表单中的输入框

a

<a />

(1) href:指定链接的url

行级标签,标记一个超链接,在href属性中指定其它页面的url

img

<img />

(1) src: 指定图片文件的路径

(2) width: 指定图片的宽度

(3) height: 指定图片的高度

行级标签,标记一张图片,在img标签内的src属性中定义图片的路径

br

<br/>


行级标签,在当前位置处添加一个换行符

html中的标签可以相互嵌套,比如在div中嵌套div,在ul中嵌套div:

<!-- 在div中嵌套div -->
<div>
    <div>
    </div>
</div>
 
 
<!-- 在ul中嵌套div -->
<ul>
    <li>
        <div></div>
    </li>
</ul>

标签的布局及嵌套,应根据其常规语义来合理地使用,而不是毫无逻辑的乱用。现在根据以上知识,来定义一个简单的HTML文件:

<html>
    <head>
    <meta http-equiv="Content-Type" content="text/html; charset=utf-8"/>
    <title>Python网络爬虫核心原理及实战</title>
</head>
 
<body>
    <div  id="header">
        <div id="logo">
        <a href="http://chipscoco.com/"><img src="logo.png" ></a>
        </div>
        
  </div>
                        
   <div id="main">
       <p>
   
      在广袤的互联网中,有这样一种"爬虫生物",穿梭于万维网中,将承载信息的网页吞食,然后交由搜索引擎进行转化,
      吸收,并最终"孵化"出结构化的数据,供人快速查找,展示。这种"生物",其名曰"网络蜘蛛"。<br/>
      现实中的蜘蛛形状可怖,以致于让大多数人忽略了其对人类有益的事实。<br/>
      网络蜘蛛虽以数据为食,但是数据的生产者-网站,需要借助爬虫的帮助,将网页提交给搜索引擎
     </p>
 </div>
 
</body>
</html>

使用浏览器打开HTML文件,浏览器会自动对文件进行解析,并按HTML标签组织的层次结构来进行内容的渲染。现在同学们将上文中的HTML代码写入记事本中,命名为chipscoco.html,并确保文件所在目录有一个logo.png的图片文件。用浏览器打开chipscoco.html时,可以看到以下网页:


1613356782(1).jpg

3.1.4 知识要点

(1) HTML的英文全称为“Hyper Text Markup Language”,中文释义为超文本标记语言

(2) 网站中的每一个网页都是由HTML定义的。可以说,一张网页即对应一个HTML文件

(3) HTML使用<>符号将标签名括起来,每一个标签名表示一个特定的语义

(4) HTML最外围的标签为<html>,在<html>内部,按其组成结构又可分为head标签和 body标签,类似于人体的头部,身体结构。head标签与body标签内部又包含其它的子标签。HTML中的标签可包含0个或多个属性值

3.1.5 最具实力的小班培训

薯条老师在广州做Python和Java的小班培训,一个班最多10人。不在广州的同学可以报名线上直播班,跟线下小班的同学们同步学习。打算参加小班培训的同学,必须遵守薯条老师的学习安排,认真做作业和项目。把知识学好,学扎实,那么找到一份高薪的工作就是很简单的一件事。

(1) Python后端工程师高薪就业班,月薪11K-18K,免费领取课程大纲
(2) Python爬虫工程师高薪就业班,年薪十五万,包拿Offer
(3) 数据分析高薪就业班,月薪11K-15K, 免费领取课程大纲
(4)
Python大数据挖掘,量化投资就业班,月薪12K-25K,免费领取课程大纲

扫码免费领取Python学习资料:

TAGS:HTML网页

欢迎 发表评论: