python爬虫BeautifulSoup模块解析数据入门

本文涉及的产品
云解析 DNS,旗舰版 1个月
公共DNS(含HTTPDNS解析),每月1000万次HTTP解析
全局流量管理 GTM,标准版 1个月
简介: python爬虫BeautifulSoup模块解析数据入门

python爬虫使用BeautifulSoup模块解析数据入门

1.准备

首先进行模块安装:

pip install BeautifulSoup4

因为BeautifulSoup4依赖于lxml库,所以也要安装lxml库才能正常使用。

代码示例

from bs4 import BeautifulSoup
html_doc = """
<html><head><title>The Dormouse's story</title></head>
<body>
<p class="title"><b>The Dormouse's story</b></p>

<p class="story">Once upon a time there were three little sisters; and their names were
<a href="http://example.com/elsie" class="sister" id="link1">Elsie</a>,
<a href="http://example.com/lacie" class="sister" id="link2">Lacie</a> and
<a href="http://example.com/tillie" class="sister" id="link3">Tillie</a>;
and they lived at the bottom of a well.</p>
"""

2.基本方法

首先需要用BeautifulSoup() 方法传递一个解析器

soup = BeautifulSoup(html_doc, 'lxml')
print(soup) # 查看

在这里插入图片描述
prettify() 方法 格式化输出:

print(soup.prettify())  # 代码的格式化

在这里插入图片描述

获取指定标签(只获取第一个匹配的)

print(soup.title)

在这里插入图片描述

获取指定标签的标签名

print(soup.title.name)  

在这里插入图片描述

获取指定标签的文本字符串

print(soup.title.string)

在这里插入图片描述

使用**find()**方法,获取指定标签(只获取第一个与之匹配的)

print(soup.find('p')) 

在这里插入图片描述

使用 find_all() 方法,获取全部与之匹配的标签,结果放在一个列表中

print(soup.find_all('a'))

在这里插入图片描述

找多个标签,给find_all()传入一个标签列表

print(soup.find_all(['a', 'p']))

在这里插入图片描述

get() 方法 获取标签的属性

links = soup.find_all('a')  # 'a'通过字符串传递字符串过滤器
for link in links:
    print(link.get('href'))

在这里插入图片描述
attrs 属性 获取标签的全部属性

links = soup.find_all('a')
a = links[0]
print(a.attrs)

在这里插入图片描述

3.对象种类

soup = BeautifulSoup(html_doc, 'lxml')
print(type(soup.title)) 
print(type(soup.p))  
print(type(soup.a))  
print(type(soup.find('a')))

在这里插入图片描述
得到的都是Tag标签类型,不是字符串。


title_head = soup.head
print(type(title_head.string))

在这里插入图片描述
可导航的字符串(可操纵的字符串)


print(type(soup))  # bs对象

在这里插入图片描述
bs对象。


此外,还有注释类型,指的是html文件的注释标签部分,形如

<b><!–xxxxxxxxx–><b>

这里不再具体展示,了解即可。

3.遍历文档树

● string获取标签里面的内容
● strings 返回是一个生成器对象用过来获取多个标签内容
● stripped_strings 和strings基本一致 但是它可以把多余的空格去掉

title_tag = soup.title
print(title_tag.string)
head_tag = soup.head
print(title_tag.string)  
html_tag = soup.html
print(html_tag.string)

在这里插入图片描述
如图,使用同级标签,可以找到同级数据,使用上级标签也可以,使用再上一级标签,因为这里边可以匹配的字符串有多个,所以不能再匹配到数据。
这个时候可以将string属性换为strings属性再尝试:

texts = soup.html.strings
print(texts)

在这里插入图片描述
如图输出结果是一个生成器。可遍历。

for i in texts:
    print(i)

在这里插入图片描述

但是如图,其中空行较多,不美观。于是可以切换使用stripped_strings属性,stripped_strings 和strings基本一致 但是它可以把多余的空格去掉。

texts = soup.html.stripped_strings
print(texts)

for i in texts:
    print(i)

在这里插入图片描述

目录
相关文章
|
7天前
|
数据采集 XML API
深入解析BeautifulSoup:从sohu.com视频页面提取关键信息的实战技巧
深入解析BeautifulSoup:从sohu.com视频页面提取关键信息的实战技巧
|
6天前
|
数据采集 供应链 API
Python爬虫与1688图片搜索API接口:深度解析与显著收益
在电子商务领域,数据是驱动业务决策的核心。阿里巴巴旗下的1688平台作为全球领先的B2B市场,提供了丰富的API接口,特别是图片搜索API(`item_search_img`),允许开发者通过上传图片搜索相似商品。本文介绍如何结合Python爬虫技术高效利用该接口,提升搜索效率和用户体验,助力企业实现自动化商品搜索、库存管理优化、竞品监控与定价策略调整等,显著提高运营效率和市场竞争力。
31 3
|
18天前
|
数据采集 Web App开发 监控
Python爬虫:爱奇艺榜单数据的实时监控
Python爬虫:爱奇艺榜单数据的实时监控
|
27天前
|
数据采集 JSON API
如何利用Python爬虫淘宝商品详情高级版(item_get_pro)API接口及返回值解析说明
本文介绍了如何利用Python爬虫技术调用淘宝商品详情高级版API接口(item_get_pro),获取商品的详细信息,包括标题、价格、销量等。文章涵盖了环境准备、API权限申请、请求构建和返回值解析等内容,强调了数据获取的合规性和安全性。
|
25天前
|
数据挖掘 vr&ar C++
让UE自动运行Python脚本:实现与实例解析
本文介绍如何配置Unreal Engine(UE)以自动运行Python脚本,提高开发效率。通过安装Python、配置UE环境及使用第三方插件,实现Python与UE的集成。结合蓝图和C++示例,展示自动化任务处理、关卡生成及数据分析等应用场景。
100 5
|
1月前
|
存储 缓存 Python
Python中的装饰器深度解析与实践
在Python的世界里,装饰器如同一位神秘的魔法师,它拥有改变函数行为的能力。本文将揭开装饰器的神秘面纱,通过直观的代码示例,引导你理解其工作原理,并掌握如何在实际项目中灵活运用这一强大的工具。从基础到进阶,我们将一起探索装饰器的魅力所在。
|
1月前
|
Android开发 开发者 Python
通过标签清理微信好友:Python自动化脚本解析
微信已成为日常生活中的重要社交工具,但随着使用时间增长,好友列表可能变得臃肿。本文介绍了一个基于 Python 的自动化脚本,利用 `uiautomator2` 库,通过模拟用户操作实现根据标签批量清理微信好友的功能。脚本包括环境准备、类定义、方法实现等部分,详细解析了如何通过标签筛选并删除好友,适合需要批量管理微信好友的用户。
60 7
|
2月前
|
XML 数据采集 数据格式
Python 爬虫必备杀器,xpath 解析 HTML
【11月更文挑战第17天】XPath 是一种用于在 XML 和 HTML 文档中定位节点的语言,通过路径表达式选取节点或节点集。它不仅适用于 XML,也广泛应用于 HTML 解析。基本语法包括标签名、属性、层级关系等的选择,如 `//p` 选择所有段落标签,`//a[@href=&#39;example.com&#39;]` 选择特定链接。在 Python 中,常用 lxml 库结合 XPath 进行网页数据抓取,支持高效解析与复杂信息提取。高级技巧涵盖轴的使用和函数应用,如 `contains()` 用于模糊匹配。
|
2月前
|
测试技术 开发者 Python
使用Python解析和分析源代码
本文介绍了如何使用Python的`ast`模块解析和分析Python源代码,包括安装准备、解析源代码、分析抽象语法树(AST)等步骤,展示了通过自定义`NodeVisitor`类遍历AST并提取信息的方法,为代码质量提升和自动化工具开发提供基础。
91 8
|
21天前
|
数据采集 XML 数据格式
解析Amazon搜索结果页面:使用BeautifulSoup
解析Amazon搜索结果页面:使用BeautifulSoup

推荐镜像

更多