文章目录
引言
bs4库入门讲解
一、Beautifulsoup库的安装
二、对Beautifulsoup库浅浅试用一下
BeatifulSoup的基础
一、BeautifulSoup的“李姐”
二、BeautifulSoup库的其他解析器
三、BeautifulSoup库的基本元素(bs4.element)
四、使用demo变量来分析html页面
做一个小总结
回归课本学习find()&find_all()使用方法
介绍
1. name参数
2. attrs参数
3. text参数
4. limit参数
5. recursive参数
通过CSS选择器进行搜索
1. 通过标签查找
2. 通过类名查找
3. 通过id名查找
4. 通过组合的形式查找
5. 通过属性查找
上面所述的方法返回的结果都是列表的形式,如果想要遍历这个列表,可以使用get_text()方法来获取节点的内容
在学习BeautifulSoup库之前,想先和大家简单介绍一下这个库它到底能干啥,开玩笑来说“我时间很宝贵的,你什么身份,我什么地位,你有什么值得我学习的呢?”,那么下面是我向大家所罗列BeautifulSoup库的一些功能,也是我们接下来学习的主要内容:
解析html流程说明
识别标签
提取内容
查看标签信息
其他提取细节
废话不多说,这节课就让我来和大家一起稍微全面学习一下bs4这个库,研究一下它的作用,然后再搭配一些实例操作加深大家对它的理解,当然也不会完全脱离课本内容,希望能对大家有所帮助!
在cmd中:
pip install beautifulsoup4
在操作过程中用到的URL:http://python123.io/ws/demo.html
先导入一下url,查看网页内容(jupyter Notebook)
import requests
r = requests.get("http://python123.io/ws/demo.html")
#r.status_code
#r.encoding = r,apparent_encoding
r.text
#使用demo变量存储一下相关内容
demo = r.text #在后续讲解过程中会经常使用这个变量
导入bs4:
from bs4 import BeautifulSoup
将demo页面进行优化(也称“熬汤”)
soup = BeautifulSoup(demo, "html.parser") #"html.parser"指的是解析页面的方式,由于demo使得内容是html的形式,故使用html的方式解析
#而书中soup = BeautifulSoup(html, "lxml")采用的是lxml解析器
#关于解释器相关应用后期在做详细解释
print(soup.prettify()) #prettify()方法是将demo内容优化为标准格式,可以使得内容更清晰
总结:如何使用BeautifulSoup库,简单来说就两步
(1)调用bs4引入 (2) datasoup = BeautifulSoup('
我们知道任何一个html文件我们打开它的源代码可以知道他是一组尖括号构成的标签组织起来的,每一对尖括号组成一个标签,而各种标签之间又存在上下级关系,最终相互组合形成了一个标签树
我真帅
可以说BeautifulSoup库是一个能够解析、遍历、维护“标签树”的功能库,只要你提供的文件是标签类型,那么BeautifulSoup库都能对其进行一个很好的解析
虽然不同的标签功能不同,但它们中所包含的属性大体类似,下面以
标签为例:
...
Name Attribute
成对出现 0个或多个,一般是以键值对构成
问题1:如何理解BeautifulSoup库这个类呢?
BeautifulSoup库本身解析的是html和xml的文档,而这个文档是与前面所提到的标签树是一一对应的,那么经过了BeautifulSoup类的处理后,可以使得每一个标签树转换成BeautifulSoup类,而在实际处理过程中我们时常将html文档、标签树以及BeautifulSoup看成是等价的,在此基础上我们就可以通过BeautifulSoup类使得这个标签树成为一个变量如soup = BeautifulSoup(demo, "html.parser")
,对该变量的处理,也即是对标签树处理
简单来说:BeautifulSoup对应一个HTML和XML文档的全部内容
解析器 | 使用方法 | 条件 |
---|---|---|
bs4的HT |