- 概述
- 解析
使用requests库获取的HTML页面并将其转换成字符串后,需要进一步解析HTML页面格式,提取有用的信息,这就需要处理HTML和xml的函数库。
beautifulsoup4库,简称bs4库,用于解析和处理HTML和XML。需要注意的是,它与beautifulsoup库是有差别的。beautifulsoup4库最大的优点是能够根据HTML和XML语法建立解析树,进而高效解析其中的内容。
HTML页面通常比较复杂,除了内容信息之外,还包括了大量的格式元素。如果直接解析web页面,那么需要深入了解HTML语法,而且这通常是一个复杂的过程。beautifulsoup4库将专业的web页面格式解析部分封装成函数,提供了若干有用且便捷的处理函数。
beautifulsoup4库采用面向对象的方法实现,简单来说就是它将每个页面当成是一个对象。通过.的方式调用对象的属性。
同样的,在使用beautifulsoup4库前需要进行引用。,由于这个库的特殊性,我们可以通过from-import方式从库中直接引用beautifulsoup类。
本节将为各位读者介绍beautifulsoup4库的常用方法,如果各位读者需要深入了解beautifulsoup4库,那么可以参考第三方库的主页。
beautifulsoup4库最主要的是beautifulsoup类,每个实例化的对象相当于一个页面。采用from-import格式导入beautifulsoup类,使用BeautifulSoup()创建一个BeautifulSoup()对象。
创建的对象是树形结构,其中包含HTML页面中的tag元素,下表是beautifulsoup中常用的属性:
| 属性 | 描述 |
|---|---|
| head | HTML页面的内容 |
| title | HTML页面标题,在中,使用 |
| body | HTML页面内容 |
| p | HTML页面中第一个 内容 |
| string | HTML页面所有呈现在页面上的字符串,即标签的内容 |
| stripped_string | HTML页面所有呈现在页面的非空格字符串 |
下面是简单实例:
标签在beautifulsoup4库中也是对象,称之为tag对象,除了上例中的title,还有别的常用的标签对象:
| 属性 | 描述 |
|---|---|
| name | 字符串,标签的名字,例如div等 |
| attrs | 字典,包含原来页面tag所有的属性 |
| contents | 列表,这个tag下所有的子tag内容 |
| string | 字符串,tag包围的文本,网页中呈现出来的文字 |
例如:
beautifulsoup4库中还有别的常用的方法,下面是几个简单实例:
实际使用爬虫的时候,需要对HTML有一定的了解,但是实现爬虫并不是一件困难的事情,在下面的实例练习中,会为各位读者介绍爬虫相关的属性和操作。



