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

本文涉及的产品
云解析 DNS,旗舰版 1个月
全局流量管理 GTM,标准版 1个月
公共DNS(含HTTPDNS解析),每月1000万次HTTP解析
简介: 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

相关文章
|
23天前
|
数据采集 存储 JSON
Python网络爬虫:Scrapy框架的实战应用与技巧分享
【10月更文挑战第27天】本文介绍了Python网络爬虫Scrapy框架的实战应用与技巧。首先讲解了如何创建Scrapy项目、定义爬虫、处理JSON响应、设置User-Agent和代理,以及存储爬取的数据。通过具体示例,帮助读者掌握Scrapy的核心功能和使用方法,提升数据采集效率。
70 6
|
20天前
|
调度 开发者 Python
Python中的异步编程:理解asyncio库
在Python的世界里,异步编程是一种高效处理I/O密集型任务的方法。本文将深入探讨Python的asyncio库,它是实现异步编程的核心。我们将从asyncio的基本概念出发,逐步解析事件循环、协程、任务和期货的概念,并通过实例展示如何使用asyncio来编写异步代码。不同于传统的同步编程,异步编程能够让程序在等待I/O操作完成时释放资源去处理其他任务,从而提高程序的整体效率和响应速度。
|
9天前
|
XML 存储 数据库
Python中的xmltodict库
xmltodict是Python中用于处理XML数据的强大库,可将XML数据与Python字典相互转换,适用于Web服务、配置文件读取及数据转换等场景。通过`parse`和`unparse`函数,轻松实现XML与字典间的转换,支持复杂结构和属性处理,并能有效管理错误。此外,还提供了实战案例,展示如何从XML配置文件中读取数据库连接信息并使用。
Python中的xmltodict库
|
16天前
|
数据库 Python
异步编程不再难!Python asyncio库实战,让你的代码流畅如丝!
在编程中,随着应用复杂度的提升,对并发和异步处理的需求日益增长。Python的asyncio库通过async和await关键字,简化了异步编程,使其变得流畅高效。本文将通过实战示例,介绍异步编程的基本概念、如何使用asyncio编写异步代码以及处理多个异步任务的方法,帮助你掌握异步编程技巧,提高代码性能。
51 4
|
16天前
|
API 数据处理 Python
探秘Python并发新世界:asyncio库,让你的代码并发更优雅!
在Python编程中,随着网络应用和数据处理需求的增长,并发编程变得愈发重要。asyncio库作为Python 3.4及以上版本的标准库,以其简洁的API和强大的异步编程能力,成为提升性能和优化资源利用的关键工具。本文介绍了asyncio的基本概念、异步函数的定义与使用、并发控制和资源管理等核心功能,通过具体示例展示了如何高效地编写并发代码。
25 2
|
17天前
|
算法 Python
Python 大神修炼手册:图的深度优先&广度优先遍历,深入骨髓的解析
在 Python 编程中,掌握图的深度优先遍历(DFS)和广度优先遍历(BFS)是进阶的关键。这两种算法不仅理论重要,还能解决实际问题。本文介绍了图的基本概念、邻接表表示方法,并给出了 DFS 和 BFS 的 Python 实现代码示例,帮助读者深入理解并应用这些算法。
28 2
|
22天前
|
数据采集 JSON 测试技术
Python爬虫神器requests库的使用
在现代编程中,网络请求是必不可少的部分。本文详细介绍 Python 的 requests 库,一个功能强大且易用的 HTTP 请求库。内容涵盖安装、基本功能(如发送 GET 和 POST 请求、设置请求头、处理响应)、高级功能(如会话管理和文件上传)以及实际应用场景。通过本文,你将全面掌握 requests 库的使用方法。🚀🌟
42 7
|
22天前
|
机器学习/深度学习 数据采集 算法
Python机器学习:Scikit-learn库的高效使用技巧
【10月更文挑战第28天】Scikit-learn 是 Python 中最受欢迎的机器学习库之一,以其简洁的 API、丰富的算法和良好的文档支持而受到开发者喜爱。本文介绍了 Scikit-learn 的高效使用技巧,包括数据预处理(如使用 Pipeline 和 ColumnTransformer)、模型选择与评估(如交叉验证和 GridSearchCV)以及模型持久化(如使用 joblib)。通过这些技巧,你可以在机器学习项目中事半功倍。
30 3
|
21天前
|
数据采集 Web App开发 JavaScript
爬虫策略规避:Python爬虫的浏览器自动化
爬虫策略规避:Python爬虫的浏览器自动化
|
15天前
|
数据采集 数据可视化 数据挖掘
利用Python进行数据分析:Pandas库实战指南
利用Python进行数据分析:Pandas库实战指南
下一篇
无影云桌面