python爬虫02--BeautifulSoup模块

2020-08-13  本文已影响0人  minisummer

哈喽,大家好!我是minisummer!首先感谢您的关注!
前面我们使用requests模块模拟浏览器发送请求,获取数据。
接下来我们使用BeautifulSoup模块来解析和提取网页中数据。

安装BeautifulSoup模块

pip install BeautifulSoup4

创建BeautifulSoup对象

bs对象 = BeautifulSoup(‘要解析的文本’,‘解析器’) #第1个参数:必须是字符串;第2个参数:用来标识解析器的,常用Python内置库:html.parser。

bs对象的属性、方法和tag对象

find()
只提取首个满足要求的数据
用法:bs对象.find('标签','属性')
例如:soup.find('div',class_='s_ipt')
返回数据类型:<class 'bs4.element.Tag'>

find_all()
提取出的是所有满足要求的数据
用法:bs对象.find_all('标签','属性')
例如:soup.find_all('div',class_='s_ipt')
返回数据类型:<class 'bs4.element.ResultSet'>
遍历元素返回数据类型:<class 'bs4.element.Tag'>

class_:下划线,是为了和python语法中的类 class区分,避免程序冲突。还可以使用其它属性,比如id属性等。
括号中的参数:标签和属性可以任选其一,也可以两个一起使用。

tag对象的常用属性和方法

Tag.find():只提取首个满足要求的数据
Tag.find_all():提取出的是所有满足要求的数据
Tag.text:获取标签中的文本值,包含子标签内的文本值也可以取到
(尖括号中间部分文本值,即科幻小说:<h2><a name="type1">科幻小说</a></h2>)
tag['属性名']:获取属性值,只能提取该标签本身的
(tag[‘name’]获取name属性的值,即type1:<h2><a name="type1">科幻小说</a></h2>)

对象的变化过程

获取数据
1.requests.get(url):得到一个response对象,属性有status_code,content,text,encoding
解析数据
2.response.text:得到字符串
3.BeautifulSoup(字符串,‘html.parser’):得到一个BeautifulSoup对象,方法有find()和find_all()
提取数据
4.find_all():返回一个list,遍历list提取元素,得到tag对象,属性和方法有Tag.find(),Tag.find_all(),Tag.text,Tag['属性名']
5.find():得到一个Tag对象,属性和方法有Tag.find(),Tag.find_all(),Tag.text,Tag['属性名']

请大家多多指教~
以上内容希望对你有帮助,有被帮助到的朋友欢迎点赞,评论。
注:转载请注明出处,商用请征得作者本人同意,谢谢!!!

上一篇下一篇

猜你喜欢

热点阅读