Python beautifulsoup4解析 数据提取 基本使用

本文涉及的产品
全局流量管理 GTM,标准版 1个月
云解析 DNS,旗舰版 1个月
公共DNS(含HTTPDNS解析),每月1000万次HTTP解析
简介: 文章目录Python beautifulsoup4解析 数据提取 使用介绍&常用示例前言二、from bs4 import BeautifulSoup1.pip install beautifulsoup42.Beautiful用法介绍2.1 解析html源码创建创建Beautifulsoup对象2.2 beautiful对象的常用属性和方法2.3 find、find_all、CSS选择器 根据条件提取元素3.常用代码4.对象类型介绍总结

Python beautifulsoup4解析 数据提取 使用介绍&常用示例

文章目录

前言

二、from bs4 import BeautifulSoup

1.pip install beautifulsoup4

2.Beautiful用法介绍

2.1 解析html源码创建创建Beautifulsoup对象

2.2 beautiful对象的常用属性和方法

2.3 find、find_all、CSS选择器 根据条件提取元素

3.常用代码

4.对象类型介绍

总结

前言

Beautiful Soup是Python的一个网页解析库,处理快捷; 支持多种解析器,功能强大。教程细致讲解Beautiful Soup的深入使用、节点选择器、CSS选择器、Beautiful Soup4的方法选择器等重要知识点,是学好爬虫的基础课程。


提示:以下是本篇文章正文内容,下面案例可供参考
建议把代码复制到编译工具中运行跑几次,认真看一下输出结果方便更好的理解, beautifulsoup4=4.11.1

二、from bs4 import BeautifulSoup

1.pip install beautifulsoup4

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

2.Beautiful用法介绍

2.1 解析html源码创建创建Beautifulsoup对象

from bs4 import BeautifulSoup
web_html = """
<html>
<head>
    <title id="title">The Dormouse's story1</title>
</head>
<body>
    <p class="story">
        <a href="http://example.com/elsie1" class="link11" id="link1">EXI-XZ</a>,
        <a href="http://example.com/elsie2" class="link11" id="link2">Elsie</a>,
        <a href="http://example.com/lacie" class="link22" id="link3">Lacie</a> and
        <a href="http://example.com/tillie" class="link33" id="link4">Tillie</a>;
    </p>
    <ul class="ul_test", id="abc">
        <li class="li_test" href="http://example.com/li">AA</li>
        <li class="li_test" href="http://example.com/li">BB</li>
        <li class="li_test" href="http://example.com/li">CC</li>
    </ul>
    <div class="div_test">
        <p>div模块-p标签</p>
    </div>
</body>
</html>
"""
soup = BeautifulSoup(web_html, 'lxml')  # 解析网页源码创建Beautifulsoup对象 

2.2 beautiful对象的常用属性和方法

web_html = soup.prettify()  # 返回格式化后的源码,str类型
title_tag = soup.title  # 返回源码中第一个title标签(源码),element.Tag类型
print('title_tag:', title_tag, type(title_tag))
title_content = soup.title.string  # 提取title标签的文本, element.NavigableString,下面有多个标签内容则返回None
print('title_content:', title_content, type(title_content))
all_p_content = soup.body.get_text()  # 提取body下面的所有p标签,str类型
print('all_p_content:', all_p_content, type(all_p_content))
a_href = soup.a['href']  # 提取第一个a标签的href属性,str类型
print("a_href:", a_href, type(a_href))

2.3 find、find_all、CSS选择器 根据条件提取元素

# find -- 返回符合查询条件的第一个标签
# 组合条件一
find_group_result = soup.find(name='a', string='EXI-XZ')  # name(标签名),string(标签的文本),element.Tag类型
print('find_group_result:', find_group_result, type(find_group_result))
# 组合条件二,推荐第二种方式,字典方式key,value
find_attrs_result = soup.find(attrs={'class': 'link11', 'id': 'link1'})  # 指定属性,element.Tag类型,
print('find_attrs_result:', find_attrs_result, type(find_attrs_result))
find_attrs_result.get('href')  # 获取该对象的属性href
find_attrs_result.text  # 获取该对象标签的文本,不同于find_attrs_result.string,下面有多个标签会全部返回而不是None
find_ul_result = soup.find(attrs={'class': "ul_test", 'id': 'abc'})
print('ul_tag_result:', find_ul_result.text, type(find_ul_result))  # element.Tag

# find_all -- 返回符合查询条件的所有标签, list类型
find_li_list = soup.find_all(name='li', attrs={'class': "li_test"}, limit=2)  # limit(返回前两个标签)
find_li_list[0].attrs  # 提取标签的所有属性

# CSS选择器 -- list类型
div_tag = soup.select('div,.div_test')  # 取class为"div_test"的div标签,list类型,  #=id   .=class
print('div_tag:', div_tag, type(div_tag))
div_tag = soup.select('div[class="div_test"]')  # 等同于soup.select('div,.div_test')
print('div_tag:', div_tag, type(div_tag))
print("div下p标签的文本:", div_tag[0].select("p")[0].text)  # 取div中的第一个p标签的文本

3.常用代码

import requests
from bs4 import BeautifulSoup
url = "xxxxxxxxxxxxxxxxx"
headers = {'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/106.0.0.0 Safari/537.36'}
response = requests.get(url=url, headers=headers)
web_html = response.text
soup = BeautifulSoup(web_html, 'lxml')  # 解析网页源码创建Beautifulsoup对象

4.对象类型介绍

BeautifulSoup4四大对象种类
bs4.element.Tag 通俗点讲就是HTML中的一个个标签,有很多属性和方法可以更加详细的提取内容
NavigableString 得到了标签源码,通过对象的属性和方法可以提取标签内部文字(.string)和属性(xx['class'])
BeautifulSoup 表示一个文档的全部内容.
Comment 一个特殊类型的NavigableString对象,其输出的内容不包括注释符号。

总结

小洲提示:建议把代码复制到编译工具中运行跑几次,认真看一下输出结果方便更好的理解, beautifulsoup4=4.11.1

以上就是今天要讲的内容,本文仅仅简单介绍了beautifulsoup4解析web源码的使用,而beautifulsoup4提供了大量能使我们快速便捷地处理数据的函数和方法,后续有关于beautifulsoup4的常用代码会在这篇博客中持续更新。
Beautifulsoup4官方文档:https://beautifulsoup.readthedocs.io/zh_CN/v4.4.0/

目录
相关文章
|
2天前
|
存储 搜索推荐 大数据
数据大爆炸:解析大数据的起源及其对未来的启示
数据大爆炸:解析大数据的起源及其对未来的启示
36 14
数据大爆炸:解析大数据的起源及其对未来的启示
|
12天前
|
JSON 前端开发 搜索推荐
关于商品详情 API 接口 JSON 格式返回数据解析的示例
本文介绍商品详情API接口返回的JSON数据解析。最外层为`product`对象,包含商品基本信息(如id、name、price)、分类信息(category)、图片(images)、属性(attributes)、用户评价(reviews)、库存(stock)和卖家信息(seller)。每个字段详细描述了商品的不同方面,帮助开发者准确提取和展示数据。具体结构和字段含义需结合实际业务需求和API文档理解。
|
3天前
|
运维 Shell 数据库
Python执行Shell命令并获取结果:深入解析与实战
通过以上内容,开发者可以在实际项目中灵活应用Python执行Shell命令,实现各种自动化任务,提高开发和运维效率。
40 20
|
5天前
|
JSON 缓存 API
解析电商商品详情API接口系列,json数据示例参考
电商商品详情API接口是电商平台的重要组成部分,提供了商品的详细信息,支持用户进行商品浏览和购买决策。通过合理的API设计和优化,可以提升系统性能和用户体验。希望本文的解析和示例能够为开发者提供参考,帮助构建高效、可靠的电商系统。
24 12
|
9天前
|
数据采集 Web App开发 数据可视化
Python用代理IP获取抖音电商达人主播数据
在当今数字化时代,电商直播成为重要的销售模式,抖音电商汇聚了众多达人主播。了解这些主播的数据对于品牌和商家至关重要。然而,直接从平台获取数据并非易事。本文介绍如何使用Python和代理IP高效抓取抖音电商达人主播的关键数据,包括主播昵称、ID、直播间链接、观看人数、点赞数和商品列表等。通过环境准备、代码实战及数据处理与可视化,最终实现定时任务自动化抓取,为企业决策提供有力支持。
|
10天前
|
存储 分布式计算 Hadoop
基于Java的Hadoop文件处理系统:高效分布式数据解析与存储
本文介绍了如何借鉴Hadoop的设计思想,使用Java实现其核心功能MapReduce,解决海量数据处理问题。通过类比图书馆管理系统,详细解释了Hadoop的两大组件:HDFS(分布式文件系统)和MapReduce(分布式计算模型)。具体实现了单词统计任务,并扩展支持CSV和JSON格式的数据解析。为了提升性能,引入了Combiner减少中间数据传输,以及自定义Partitioner解决数据倾斜问题。最后总结了Hadoop在大数据处理中的重要性,鼓励Java开发者学习Hadoop以拓展技术边界。
34 7
|
17天前
|
数据采集 供应链 API
Python爬虫与1688图片搜索API接口:深度解析与显著收益
在电子商务领域,数据是驱动业务决策的核心。阿里巴巴旗下的1688平台作为全球领先的B2B市场,提供了丰富的API接口,特别是图片搜索API(`item_search_img`),允许开发者通过上传图片搜索相似商品。本文介绍如何结合Python爬虫技术高效利用该接口,提升搜索效率和用户体验,助力企业实现自动化商品搜索、库存管理优化、竞品监控与定价策略调整等,显著提高运营效率和市场竞争力。
59 3
|
29天前
|
数据采集 Web App开发 监控
Python爬虫:爱奇艺榜单数据的实时监控
Python爬虫:爱奇艺榜单数据的实时监控
|
1月前
|
数据采集 JSON API
如何利用Python爬虫淘宝商品详情高级版(item_get_pro)API接口及返回值解析说明
本文介绍了如何利用Python爬虫技术调用淘宝商品详情高级版API接口(item_get_pro),获取商品的详细信息,包括标题、价格、销量等。文章涵盖了环境准备、API权限申请、请求构建和返回值解析等内容,强调了数据获取的合规性和安全性。
|
1月前
|
数据挖掘 vr&ar C++
让UE自动运行Python脚本:实现与实例解析
本文介绍如何配置Unreal Engine(UE)以自动运行Python脚本,提高开发效率。通过安装Python、配置UE环境及使用第三方插件,实现Python与UE的集成。结合蓝图和C++示例,展示自动化任务处理、关卡生成及数据分析等应用场景。
134 5

热门文章

最新文章

AI助理

你好,我是AI助理

可以解答问题、推荐解决方案等