![实战Python网络爬虫](https://wfqqreader-1252317822.image.myqcloud.com/cover/862/26542862/b_26542862.jpg)
2.4 HTML
HTML是超文本标记语言,标准通用标记语言下的一个应用。“超文本”就是指页面内可以包含图片、链接,甚至音乐、程序等非文字元素。超文本标记语言的结构包括“头”部分(Head)和“主体”部分(Body),其中“头”部分提供关于网页的信息,“主体”部分提供网页的具体内容。
爬虫开发对HTML的要求是能看懂HTML各个标签的含义,了解标签的属性作用以及整个HTML布局设计。下面来看一个简单的HTML文档的结构:
![](https://epubservercos.yuewen.com/78BE40/15056704604178806/epubprivate/OEBPS/Images/Figure-P26_1.jpg?sign=1738779546-UyhQ3VNgfa5EgRt9T5KpxpIZgyPyacpE-0-ad6596dab6475446da3d769ffd8d3ac9)
一个完整的网页必定以〈html〉〈/html〉为开头和结尾,整个HTML可分为两部分:
(1)〈head〉〈/head〉,主要是对网页的描述、图片和JavaScript的引用。〈head〉元素包含所有的头部标签元素。在〈head〉元素中可以插入脚本(scripts)、样式文件(CSS)及各种meta信息。该区域可添加的元素标签有〈title〉、〈style〉、〈meta〉、〈link〉、〈script〉、〈noscript〉和〈base〉。
(2)〈body〉〈/body〉是网页信息的主要载体。该标签下还可以包含很多类别的标签,不同的标签有不同的作用,标签以〈〉开头,以〈/〉结尾,〈〉和〈/〉之间的内容是标签的值和属性,每个标签之间可以是相互独立的,也可以是嵌套、层层递进的关系。
根据这两个组成部分就能很容易地分析整个网页的布局。其中,〈body〉〈/body〉是整个HTML的重点部分,通过示例讲述如何分析〈body〉〈/body〉:
![](https://epubservercos.yuewen.com/78BE40/15056704604178806/epubprivate/OEBPS/Images/Figure-P26_2.jpg?sign=1738779546-slUXCaGpgkt0eQc6RpMwVVqkJOQT29kL-0-41164df65cb424bc5fbcaf38b3fc2b0e)
上述例子分析如下:
(1)〈h1〉和〈div〉是两个不相关的标签,两个标签是相互独立的。
(2)〈div〉和〈p〉是嵌套关系,〈p〉的上一级标签是〈div〉。
(3)〈h1〉和〈p〉这两个标签是毫无关系的。
(4)〈h2〉标签包含一个〈p〉标签,〈p〉标签再包含一个〈a〉标签,一个标签可以包含多个标签在其中。
除上述示例的标签之外,大部分标签都可以在〈body〉〈/body〉中添加,常用的标签如表2-1所示。
表2-1 HTML常用的标签
![](https://epubservercos.yuewen.com/78BE40/15056704604178806/epubprivate/OEBPS/Images/Figure-T27_1.jpg?sign=1738779546-Xp3oZs018zUQdgTITEbhCckQC3RAlL1x-0-b5dafb1ccac21456a0d78fc59dba8ffa)