首页 > 编程语言 >Python的Bs4解析库的学习与使用

Python的Bs4解析库的学习与使用

时间:2022-10-19 11:35:29浏览次数:50  
标签:soup Python 标签 BeautifulSoup Bs4 table 解析 find 属性

Beautiful Soup 简称 BS4(其中 4 表示版本号)是一个 Python 第三方库,它可以从 HTML 或 XML 文档中快速地提取指定的数据。提供一些简单的、python 式的函数用来处理导航、搜索、修改分析树等功能。它是一个工具箱,通过解析文档为用户提供需要抓取的数据。

数据解析原理:

  1. 标签定位
  2. 提取标签、标签属性中存储的数据值

bs4数据解析原理:

  • 1.实例化一个BeautifulSoup对象,并且将页面原码数据加载到该对象中
  • 2.通过调用BeautifulSoup对象中相关的属性或方法进行标签定位和数据提取

bs4中的一些重要的属性

(1)根据标签名查找
- soup.a 只能找到第一个符合要求的标签
(2)获取属性
- soup.a.attrs 获取a所有的属性和属性值,返回一个字典
- soup.a.attrs['href'] 获取href属性
(3)获取其标签内的内容
- soup.a.string
- soup.a.text
- soup.a.get_text()
注意:如果标签还有标签,那么string获取到的结果为None,而其它两个,可以获取文本内容

以下是我自己在使用过程中总结的一些步骤,之后还会进行详细的讲解

  • 把页面源代码交给BeautifulSoup进行处理, 生成bs对象 page = BeautifulSoup(resp.text, "html.parser") # 指定html解析器,如果不指定解析器不会报错,但是会爆红
  • 从bs对象中查找数据
    #find(标签, 属性=值)
    #find_all(标签, 属性=值)
  • 在指定属性的过程中,例如class和id等是python的关键字,所以直接使用python关键字会发现报错,有两种解决方式:\ 第一种是在关键字后加_可解决问题,例如:class_ table = page.find("table", class_="hq_table")\ 第二种是使用attrs{},例如: table = page.find("table", attrs={"class": "hq_table"})

Bs4下载安装

由于 Bautiful Soup 是第三方库,因此需要单独下载,下载方式非常简单,执行以下命令即可安装:

pip install bs4
pip install bs4 -i https://pypi.tuna.tsinghua.edu.cn/simple
pip install lxml -i https://pypi.tuna.tsinghua.edu.cn/simple

Bs4解析对象

#导入解析包
from bs4 import BeautifulSoup
#创建beautifulsoup解析对象
soup = BeautifulSoup(此处是我们需要使用的文件的名称, 'html.parser')

Bs4 库中定义了许多用于搜索的方法,find() 与 find_all() 是最为关键的两个方法

  1. find_all()\ find_all() 方法用来搜索当前 tag 的所有子节点,并判断这些节点是否符合过滤条件,最后以列表形式将符合条件的内容返回.\
  2. find()\ find() 方法与 find_all() 类似,不同之处在于 find_all() 会将文档中所有符合条件的结果返回,而 find() 仅返回一个符合条件的结果

标签:soup,Python,标签,BeautifulSoup,Bs4,table,解析,find,属性
From: https://blog.51cto.com/u_15638660/5769155

相关文章