章节二:HTML基础


章节二:HTML基础

目录
  • 章节二:HTML基础
    • 1. 爬虫,从网页开始
      • 1.1 为什么要学习HTML?
      • 1.2 什么是HTML
      • 1.3 查看网页源码
    • 2. HTML的组成
      • 2.1 层级结构
      • 2.2 标签
      • 2.3 属性
      • 2.4 属性:class&id
    • 3. HTML分析
      • 3.1 开发者工具
      • 3.2 开发者彩蛋
      • 3.3 修改网页
    • 4. 实操一下
      • 获取数据
    • 5. 习题练习

1. 爬虫,从网页开始

1.1 为什么要学习HTML?

按道理来说,下面该学习爬虫的第1步: 数据解析了吧?

别急别急,心急爬不了热豆腐。在此之前,先来道送分题,我们要的数据藏哪里来着?

藏在网页当中,对吧。上一节课,老师提到,当我们在Chrome浏览器上,拿着url向服务器发出请求的时候,服务返回的是一个带有HTML文档的数据包,经过浏览器解析,网页才能在窗口上正常呈现。

image.png-184.3kB

哎?发现问题没,python可没有内置Chrome浏览器啊。

也就是说,我们在用python请求了远程服务器之后,拿到的内容,最常见的,会是一份原汁原味的HTML文档。

如果把HTML的学习依序分为三个层次的话,应该是读懂、修改、编写

【读懂】:可以说,HTML是踏入爬虫世界的第一步,在这个的基础上,我们才有可能运用Python模块解析数据和提取数据。这一步,你会解锁打开网页的新姿势。比如找到B站首页的logo彩蛋。

image.png-9038.2kB

【修改】:在读懂的基础上,学会修改HTML代码,可以做些有趣的事情的,比如修改我偶像在社交网站上的简介:

image.png-2239.7kB

【编写】:如果技术达到了这个水平,那就可以去应聘初级前端工程师了。

当我们使用python拿到一份html文档后,毫无疑问,只有看懂且能对其进行简单分析,才能从中获取我们想要的信息。

所以,我们这一关的学习目标只要达到前两者,能够读懂、修改我们的学习网站这个书苑不太冷即可。

好,那马上开始今天的学习吧!

1.2 什么是HTML

HTML是用来描述网页的一种语言,英文全称是Hyper Text Markup Language,也叫超文本标记语言。

等等,你问什么是标记语言?

标记语言就是把文本和文本以外的相关信息(例如大小,高度,颜色,位置等)组合在一起的语言。

嗯...组合什么?怎么组合?

这几个问题会在接下来的课程中得到解答,现在请你带着这些疑惑,跟我到网页上一探究竟,上车!

1.3 查看网页源码

Talk is cheap,Show you the code. 话不多说,先验货。来看看漂亮的网页背后的HTML文档,请一步一步跟着我操作。

【注:下面我们的示范,会用谷歌浏览器(Chrome)进行演示】

随机打开一个网站,老师课堂上会用教学网站来演示,你也可以打开其他网站,诸如知乎、百度、淘宝等。

这个书苑不太冷:https://localprod.pandateacher.com/python-manuscript/crawler-html/spider-men5.0.html

在网页任意地方点击鼠标右键,然后点击“显示网页源代码”。(Windows系统的电脑还可以使用快捷键ctrl+u来查看网页源代码)

image.png-100kB

如果浏览器弹出了一个新的标签页,内容形式如下,那错不了,该网页是用HTML文档写的!

image.png-351.5kB

2. HTML的组成

看起来有点复杂?不怕,事实上,HTML文档在编程界是有名的软萌可推。不信?来看一份基础的HTML文档。



    
        
    
    
        风变一下,你就学到
    

对,这个看上去很简单的程序就是整个HTML的基本架势,我们先熟悉一下它的格式,不用纠结代码具体的意思。

image.png-32.5kB

HTML文档主要由元素组成。

第一行是一个全局声明,目的是告诉浏览器,你现在处理的这个文档是HTML文档。

声明过后,迎来了HTML代码的主战场,一共有三组基本元素,分别是html元素(),head头元素(),和body主体元素()。

它们成对出现,都带有尖括号(<>&),分别代表着元素的起点和终点。

最外层是(文档起点)(文档终点),它的作用是标记文档的起始位置和终止位置,从层级上来看,显然是老大,将(头部)和(主题)包裹了起来。

看到这里,你会发现,HTML文档就好像一个勾勒好头部和身体位置的人体。

image.png-59.2kB

当然,人生在世,只有简单的“轮廓”是不够的,需再勾画些“器官”,穿些漂亮衣服,学习一些行为动作,才不虚此行。html亦是如此,下面,让它展露下自己的一鳞半甲。

前面我们说,HTML文档可以容纳更加丰富的信息,于是,老师在原来的基础上撒点料,变成了这样(体验一下,不必细究具体某块代码的意思):

image.png-297kB




    风变一下,就能学到
    
    


    


事情似乎变得有趣起来了,粗略地阅读代码框架,大致能得到如下信息:

2.1 层级结构

HTML和python一样,【有缩进】,这缩进将文档之间的那点结构层级安排地明明白白。

以我们人体为例,每颗头,都有眼睛、耳朵、鼻子,嘴唇、头发(好像不一定?)。而每双眼睛,又由眼睫毛、眼皮、眼球等结构组成。

生活如斯,在数据的世界中,分层级的组织规则和作用会更加明显。

譬如,头部元素()内,一般会被用来设置网页的编码,添加网页标签的小logo,小标题,外部文件引用(就好像python会用import引用别的模块)等。

image.png-207.2kB

其次,HTML文档的主体元素()负责定义网页窗口内的所有内容,同时也是今后我们重点关注的对象。

image.png-54.9kB

在这里,主体元素()的腹中只有一个div元素(

),而div元素(
)手下有两个“关节”:图片元素()和表单元素(
),表单元素(
)也有两节“骨头”,分别是input元素()和按钮元素(