python爬虫——Beautiful Soup库(数据解析)模块讲解

简介: python爬虫——Beautiful Soup库(数据解析)模块讲解

本文转载:https://xiaochuhe.blog.csdn.net/article/details/123368545
一、概述

Beautiful Soup (简称bs4)是一个可以从HTML或XML文件中提取数据的Python库。提供一些简单的、python式的函数用来处理导航、搜索、修改分析树等功能。它是一个工具箱,通过解析文档为用户提供需要抓取的数据,因为简单,所以不需要多少代码就可以写出一个完整的应用程序。
注:Beautiful Soup自动将输入文档转换为Unicode编码,输出文档转换为utf-8编码。所以仅仅只需要说明一下原始编码方式就可以。
二、数据解析

数据解析就是将爬取到的整个页面中的局部的内容进行提取。

python中常用的数据解析方式有以下三种:

    bs4(python中独有的)
    xpath(推荐,通用型强)
    正则

bs4数据解析原理

实例化一个BeautifulSoup对象,并且将页面源码数据加载到该对象中。而将页面源码数据加载到该对象中有两种方式,一种是将本地得html文档加载,另一种是将互联网上获取的页面源码加载
通过调用BeautifulSoup对象中相关的属性或者方法进行标签定位和数据提取。
三、Beautiful Soup用法

举例说明:
html文件代码:

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>爬虫的一天</title>
</head>
<body>
    <p class="a1" name="content1">
        <b>今天写一篇博客!</b>
    </p>
    <p class="a2" name="content2">
        <h3>什么!!!</h3>
        你现在就要看?算了,给你链接自己去看吧!
        <a class="a3" href="http://www.xiaofeng.press/">
            点开就可以看到博客哦!
        </a>
    </p>
</body>
</html>

python实例说明代码:

html ='''<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>爬虫的一天</title>
</head>
<body>
    <p class="a1" name="content1">
        <b>今天写一篇博客!</b>
    </p>
    <p class="a2" name="content2">
        <h3>什么!!!</h3>
        你现在就要看?算了,给你链接自己去看吧!
        <a class="a3" href="http://www.xiaofeng.press/">
            点开就可以看到博客哦!
        </a>
    </p>'''
from bs4 import BeautifulSoup
creep = BeautifulSoup(html,'lxml')#使用lxml解析库
#print (soup.prettify())#格式化代码,可以自动补全
print (creep.title.string)#输出网页title标签内容
print (creep.title)
print (type(creep.title))
print (creep.head) #输出网页head标签全部内容
print (creep.p) #这种方式只会输出第一个p标签
print (creep.title.name)#获取title标签名
print (creep.p['name'])#获取p标签中name的属性值
print (creep.p.attrs['name'])#获取p标签中name的属性值
print (creep.head.title.string)#嵌套输出网页title标签内容
print (creep.p.contents)#以列表形式输出第一个p标签的子节点和内容

输出结果:
图片.png

相关文章
|
1天前
|
存储 SQL 缓存
阿里云大学考试python中级题目及解析-python中级
阿里云大学考试python中级题目及解析-python中级
|
1天前
|
机器学习/深度学习 存储 监控
数据分享|Python卷积神经网络CNN身份识别图像处理在疫情防控下口罩识别、人脸识别
数据分享|Python卷积神经网络CNN身份识别图像处理在疫情防控下口罩识别、人脸识别
|
1天前
|
机器学习/深度学习 数据采集 算法
Python信贷风控模型:Adaboost,XGBoost,SGD, SVC,随机森林, KNN预测信贷违约支付|数据分享
Python信贷风控模型:Adaboost,XGBoost,SGD, SVC,随机森林, KNN预测信贷违约支付|数据分享
Python信贷风控模型:Adaboost,XGBoost,SGD, SVC,随机森林, KNN预测信贷违约支付|数据分享
|
1天前
|
JSON 数据可视化 定位技术
python_将包含汉字的字典数据写入json(将datav的全省数据中的贵州区域数据取出来)
python_将包含汉字的字典数据写入json(将datav的全省数据中的贵州区域数据取出来)
4 0
|
1天前
|
API 调度 开发者
Python中的并发编程:使用asyncio库实现异步IO
传统的Python编程模式中,使用多线程或多进程实现并发操作可能存在性能瓶颈和复杂性问题。而随着Python 3.5引入的asyncio库,开发者可以利用异步IO来更高效地处理并发任务。本文将介绍如何利用asyncio库实现异步IO,提升Python程序的并发性能。
|
2天前
|
JSON Shell 数据格式
第十章 Python常用标准库使用(必会)
第十章 Python常用标准库使用(必会)
|
2天前
|
开发框架 前端开发 数据库
Python从入门到精通:3.3.2 深入学习Python库和框架:Web开发框架的探索与实践
Python从入门到精通:3.3.2 深入学习Python库和框架:Web开发框架的探索与实践
|
2天前
|
数据采集 数据可视化 数据处理
Python从入门到精通的文章3.3.1 深入学习Python库和框架:数据处理与可视化的利器
Python从入门到精通的文章3.3.1 深入学习Python库和框架:数据处理与可视化的利器
|
2天前
|
JSON 测试技术 API
Python的Api自动化测试使用HTTP客户端库发送请求
【4月更文挑战第18天】在Python中进行HTTP请求和API自动化测试有多个库可选:1) `requests`是最流行的选择,支持多种请求方法和内置JSON解析;2) `http.client`是标准库的一部分,适合需要低级别控制的用户;3) `urllib`提供URL操作,适用于复杂请求;4) `httpx`拥有类似`requests`的API,提供现代特性和异步支持。根据具体需求选择,如多数情况`requests`已足够。
9 3
|
3天前
|
机器学习/深度学习 算法 Python
数据分享|Python决策树、随机森林、朴素贝叶斯、KNN(K-最近邻居)分类分析银行拉新活动挖掘潜在贷款客户
数据分享|Python决策树、随机森林、朴素贝叶斯、KNN(K-最近邻居)分类分析银行拉新活动挖掘潜在贷款客户
21 4

推荐镜像

更多