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

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

相关文章
|
4天前
|
数据采集 存储 XML
构建高效的Python爬虫系统
【9月更文挑战第30天】在数据驱动的时代,掌握如何快速高效地获取网络信息变得至关重要。本文将引导读者了解如何构建一个高效的Python爬虫系统,从基础概念出发,逐步深入到高级技巧和最佳实践。我们将探索如何使用Python的强大库如BeautifulSoup和Scrapy,以及如何应对反爬措施和提升爬取效率的策略。无论你是初学者还是有经验的开发者,这篇文章都将为你提供宝贵的知识和技能,帮助你在信息收集的海洋中航行得更远、更深。
18 6
|
1天前
|
数据采集 存储 数据挖掘
深入探索 Python 爬虫:高级技术与实战应用
本文介绍了Python爬虫的高级技术,涵盖并发处理、反爬虫策略(如验证码识别与模拟登录)及数据存储与处理方法。通过asyncio库实现异步爬虫,提升效率;利用tesseract和requests库应对反爬措施;借助SQLAlchemy和pandas进行数据存储与分析。实战部分展示了如何爬取电商网站的商品信息及新闻网站的文章内容。提醒读者在实际应用中需遵守法律法规。
100 66
|
3天前
|
数据采集 数据挖掘 数据处理
Python中实现简单爬虫并处理数据
【9月更文挑战第31天】本文将引导读者理解如何通过Python创建一个简单的网络爬虫,并展示如何处理爬取的数据。我们将讨论爬虫的基本原理、使用requests和BeautifulSoup库进行网页抓取的方法,以及如何使用pandas对数据进行清洗和分析。文章旨在为初学者提供一个易于理解的实践指南,帮助他们快速掌握网络数据抓取的基本技能。
15 3
|
5天前
|
数据采集 存储 监控
如何使用 Python 爬取京东商品数据
如何使用 Python 爬取京东商品数据
17 0
|
5天前
|
数据采集 Linux 网络安全
python 爬虫遇到的aiohttp证书错误解决办法
python 爬虫遇到的aiohttp证书错误解决办法
20 0
|
2月前
|
监控 网络协议 Java
Tomcat源码解析】整体架构组成及核心组件
Tomcat,原名Catalina,是一款优雅轻盈的Web服务器,自4.x版本起扩展了JSP、EL等功能,超越了单纯的Servlet容器范畴。Servlet是Sun公司为Java编程Web应用制定的规范,Tomcat作为Servlet容器,负责构建Request与Response对象,并执行业务逻辑。
Tomcat源码解析】整体架构组成及核心组件
|
2月前
|
存储 NoSQL Redis
redis 6源码解析之 object
redis 6源码解析之 object
58 6
|
21天前
|
存储 缓存 Java
什么是线程池?从底层源码入手,深度解析线程池的工作原理
本文从底层源码入手,深度解析ThreadPoolExecutor底层源码,包括其核心字段、内部类和重要方法,另外对Executors工具类下的四种自带线程池源码进行解释。 阅读本文后,可以对线程池的工作原理、七大参数、生命周期、拒绝策略等内容拥有更深入的认识。
什么是线程池?从底层源码入手,深度解析线程池的工作原理
|
25天前
|
开发工具
Flutter-AnimatedWidget组件源码解析
Flutter-AnimatedWidget组件源码解析
|
21天前
|
设计模式 Java 关系型数据库
【Java笔记+踩坑汇总】Java基础+JavaWeb+SSM+SpringBoot+SpringCloud+瑞吉外卖/谷粒商城/学成在线+设计模式+面试题汇总+性能调优/架构设计+源码解析
本文是“Java学习路线”专栏的导航文章,目标是为Java初学者和初中高级工程师提供一套完整的Java学习路线。
176 37
下一篇
无影云桌面