我的编程空间,编程开发者的网络收藏夹
学习永远不晚

PythonBautifulSoup节点信息

短信预约 -IT技能 免费直播动态提醒
省份

北京

  • 北京
  • 上海
  • 天津
  • 重庆
  • 河北
  • 山东
  • 辽宁
  • 黑龙江
  • 吉林
  • 甘肃
  • 青海
  • 河南
  • 江苏
  • 湖北
  • 湖南
  • 江西
  • 浙江
  • 广东
  • 云南
  • 福建
  • 海南
  • 山西
  • 四川
  • 陕西
  • 贵州
  • 安徽
  • 广西
  • 内蒙
  • 西藏
  • 新疆
  • 宁夏
  • 兵团
手机号立即预约

请填写图片验证码后获取短信验证码

看不清楚,换张图片

免费获取短信验证码

PythonBautifulSoup节点信息

1、获取节点的内容

获取节点内容:

如果要获得节点中的文本内容,可以用 string 或 get_text()

  • string:只能获得节点中的文本内容,如果节点中有子孙节点,string就获取不到内容,返回 None
  • get_text() 推荐使用:获取到节点中包含的所有内容包括子孙节点中的内容
  • 可以使用get_text() 方法快速得到源文件中的所有文本内容,如 soup.get_text()

使用实例:

待解析的html文本文件如下:id为al的p标签有子孙节点,id为bl的span标签没有子孙节点

<!DOCTYPE html>
<html lang="en">
<head>
<title>test</title>
</head>
<body>
<p class="title"/>

<a href="http://localhost:8080" rel="external nofollow"  rel="external nofollow"  rel="external nofollow" />
<div>
    <p class="story" id="al">
        <a class="s1" href="www.baidu.com" rel="external nofollow"  id="l1">a1</a>
        <a class="s2" href="" id=" rel="external nofollow"  rel="external nofollow" l2">a2</a>
        <a class="s3" href="" id=" rel="external nofollow"  rel="external nofollow" l3">a3</a>
        <span>span</span>
    </p>
    <span id="bl">
        方唐镜
    </span>
</div>
</body>
</html>

使用实例1:对p标签和span标签进行解析,打印里面的内容

from bs4 import BeautifulSoup

#使用 lxml 解析器
soup = BeautifulSoup(open('test.html',encoding='utf-8'),'lxml')

list = soup.select('#al')[0]
print(list.string)
print(list.get_text())

执行结果及说明:

用string获取p标签的文本内容,因为p标签有子孙节点,所以返回None;

get_text()获取p标签的文本内容,返回p标签及子孙节点中的文本内容;

None

# 用
a1
a2
a3

使用实例2:对span标签进行解析,打印里面的内容

span = soup.select('#bl')[0]
print(span.string)
print(span.get_text())

执行结果及说明:

string获取span标签的文本内容,因为span标签没有子孙节点,所以可以返回文本内容;

用get_text()获取span标签的文本内容,因为span标签没有子孙节点,所以只返回span标签的文本内容;

span
 
        方唐镜
    

        方唐镜

2、获取节点的名称

.name 获取节点的名称

待解析的html文本文件:

<!DOCTYPE html>
<html lang="en">
<head>
<title>test</title>
</head>
<body>
<p class="title"/>
<a href="http://localhost:8080" rel="external nofollow"  rel="external nofollow"  rel="external nofollow" />
<div>
    <span id="span" class="c1">
        方唐镜
    </span>
</div>
</body>
</html>

获取节点的属性实例:

from bs4 import BeautifulSoup

#使用 lxml 解析器
soup = BeautifulSoup(open('test.html',encoding='utf-8'),'lxml')
# 根据class选择器查找,返回第一个节点
obj = soup.select('.c1')[0]
print(obj.name)

执行结果:该节点为span节点

span

3、获取节点的属性值

.attrs 获取获取节点的属性值,并以字典的形式返回

待解析的html文本文件:

<!DOCTYPE html>
<html lang="en">
<head>
<title>test</title>
</head>
<body>
<p class="title"/>
<a href="http://localhost:8080" rel="external nofollow"  rel="external nofollow"  rel="external nofollow" />
<div>
    <span id="span" class="c1">
        方唐镜
    </span>
</div>
</body>
</html>

获取节点的属性实例:

from bs4 import BeautifulSoup

#使用 lxml 解析器
soup = BeautifulSoup(open('test.html',encoding='utf-8'),'lxml')
# 根据class选择器查找,返回第一个节点
obj = soup.select('.c1')[0]
print(obj.attrs)

执行结果:以字典的形式返回

{'id': 'span', 'class': ['c1']}

可以通过get方法获得字典里指定属性的属性值:有下面三种方法

# 获取class属性的属性值
#方式一(推荐)
print(obj.attrs.get('class'))
#方式二
print(obj.get('class'))
#方式三
print(obj['class'])

执行结果:

['c1']
['c1']
['c1']

3、BS4具体使用

代码实例:获取所有饮品的名称·

import urllib.request
from bs4 import BeautifulSoup
from lxml import etree

url = 'https://www.starbucks.com.cn/menu/'
headers = {
    'user-agent': 'Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/92.0.4515.131 Safari/537.36 SLBrowser/8.0.0.2242 SLBChan/10'
}
# 定制请求,发送请求并返回响应对象和html文档
request = urllib.request.Request(url=url,headers=headers)
response = urllib.request.urlopen(request)
content = response.read().decode('utf-8')

# 使用 lxml 解析器
soup = BeautifulSoup(content,'lxml')
# 检索html文档,返回列表形式
name_list = soup.select('ul[class="grid padded-3 product"] strong')
# 遍历打印
for name in name_list:
    print(name.string)

执行结果:

到此这篇关于Python BautifulSoup 节点信息的文章就介绍到这了,更多相关Python BautifulSoup 内容请搜索编程网以前的文章或继续浏览下面的相关文章希望大家以后多多支持编程网!

免责声明:

① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。

② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341

PythonBautifulSoup节点信息

下载Word文档到电脑,方便收藏和打印~

下载Word文档

猜你喜欢

获取BT节点信息bittorrent-discovery

获取BT节点信息bittorrent-discovery
2023-06-04

阿里云服务器如何还原节点信息文件

简介在使用阿里云服务器时,有时候我们可能会遇到需要还原节点信息文件的情况。本文将介绍如何在阿里云服务器上还原节点信息文件的方法。步骤一:登录阿里云控制台首先,打开浏览器,访问阿里云官方网站,并使用您的账号登录阿里云控制台。步骤二:选择云服务器实例在阿里云控制台首页,点击左侧导航栏中的“云服务器ECS”,然后选择您要还原
阿里云服务器如何还原节点信息文件
2024-01-31

小程序开发如何获取节点的相关信息

本篇内容主要讲解“小程序开发如何获取节点的相关信息”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“小程序开发如何获取节点的相关信息”吧!获取节点的相关信息,需要获取的字段在fields中指定。返回
2023-06-26

信息安全工程师信息隐藏考点

  信息安全工程师信息隐藏考点有哪些?为了方便考生及时有效的备考,编程学习网小编为大家精心整理了软考信息安全工程师信息隐藏考试知识点,供大家参考和学习。如想获取更多计算机软件水平考试的模拟题及备考资料,请关注编程学习网网站的更新。  【考法分析】  本考点主要是对信息隐藏技术相关内容的考查。  【要点分析】  1.信息隐藏是把
信息安全工程师信息隐藏考点
2024-04-18

腾讯云服务器怎么搭建节点设置的地址信息

云服务器的类型和配置腾讯云服务器可以分为多种类型,包括容器云服务器、数据库云服务器、CDN云服务器、负载均衡云服务器等。每种类型的服务器都有其不同的配置和特点。以下是一些常见的腾讯云服务器配置和特点:容器云服务器:容器云服务器是一种轻量级的云计算服务器,它可以在云上运行,不需要安装任何软件和配置,适合需要快速部署的企业
腾讯云服务器怎么搭建节点设置的地址信息
2023-10-28

python怎么去除图像细节信息

要去除图像细节信息,可以使用图像模糊技术。Python提供了许多图像处理库,如OpenCV和PIL(Pillow),可以用于实现图像模糊。以下是使用OpenCV库对图像进行模糊的示例代码:```pythonimport cv2# 读取图像i
2023-09-18

信息安全工程师信息安全概念考点

  信息安全工程师信息安全概念考点有哪些?为了方便考生及时有效的备考,编程学习网小编为大家精心整理了软考信息安全工程师信息安全概念考试知识点,供大家参考和学习。如想获取更多计算机软件水平考试的模拟题及备考资料,请关注编程学习网网站的更新。  【考法分析】  本考点主要是对信息安全技术相关概念的考查。  【要点分析】  1.我国
信息安全工程师信息安全概念考点
2024-04-18

考软考信息安全工程师,这些时间节点不可错过

参加软考信息安全工程师考试对于希望在信息安全领域发展职业生涯的专业人士来说是一个重要的步骤。在准备参加软考信息安全工程师考试时,了解并掌握关键的时间节点对于考生来说至关重要。具体请见下文。
考软考信息安全工程师,这些时间节点不可错过
2024-07-26

信息系统项目管理师信息安全考点

  信息系统项目管理师信息安全考点有哪些?为了方便考生及时有效的备考,编程学习网小编为大家精心整理了软考信息系统项目管理师信息安全考试知识点,供大家参考和学习。如想获取更多计算机软件水平考试的模拟题及备考资料,请关注编程学习网网站的更新。  第27章 信息安全技术基础  (1)密码技术  (2)虚拟专用网络和虚拟本地网  (3
信息系统项目管理师信息安全考点
2024-04-18

信息安全工程师考试知识点:信息隐藏

  很多考生在备考软考信息安全工程师考试,今天编程学习网小编为大家整理了信息安全工程师考试知识点:信息隐藏,供大家备考复习。  【考法分析】  本考点主要是对信息隐藏技术相关内容的考查。  【要点分析】  1.信息隐藏是把一个有意义的信息隐藏在另一个称为载体(Cover) 的信息中得到隐蔽载体(Stego Cover) S
信息安全工程师考试知识点:信息隐藏
2024-04-18

微信小程序如何获取节点

小编给大家分享一下微信小程序如何获取节点,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获,下面让我们一起去了解一下吧!wx.createSelectorQuery()基础库 1.4.0 开始支持
2023-06-26

信息安全工程师信息安全法律法规考点

  信息安全工程师信息安全法律法规考点有哪些?为了方便考生及时有效的备考,编程学习网小编为大家精心整理了软考信息安全工程师信息安全法律法规考试知识点,供大家参考和学习。如想获取更多计算机软件水平考试的模拟题及备考资料,请关注编程学习网网站的更新。  【考法分析】  本考点主要是对信息安全相关法律法规的考查。  【要点分析】  
信息安全工程师信息安全法律法规考点
2024-04-18

编程热搜

  • Python 学习之路 - Python
    一、安装Python34Windows在Python官网(https://www.python.org/downloads/)下载安装包并安装。Python的默认安装路径是:C:\Python34配置环境变量:【右键计算机】--》【属性】-
    Python 学习之路 - Python
  • chatgpt的中文全称是什么
    chatgpt的中文全称是生成型预训练变换模型。ChatGPT是什么ChatGPT是美国人工智能研究实验室OpenAI开发的一种全新聊天机器人模型,它能够通过学习和理解人类的语言来进行对话,还能根据聊天的上下文进行互动,并协助人类完成一系列
    chatgpt的中文全称是什么
  • C/C++中extern函数使用详解
  • C/C++可变参数的使用
    可变参数的使用方法远远不止以下几种,不过在C,C++中使用可变参数时要小心,在使用printf()等函数时传入的参数个数一定不能比前面的格式化字符串中的’%’符号个数少,否则会产生访问越界,运气不好的话还会导致程序崩溃
    C/C++可变参数的使用
  • css样式文件该放在哪里
  • php中数组下标必须是连续的吗
  • Python 3 教程
    Python 3 教程 Python 的 3.0 版本,常被称为 Python 3000,或简称 Py3k。相对于 Python 的早期版本,这是一个较大的升级。为了不带入过多的累赘,Python 3.0 在设计的时候没有考虑向下兼容。 Python
    Python 3 教程
  • Python pip包管理
    一、前言    在Python中, 安装第三方模块是通过 setuptools 这个工具完成的。 Python有两个封装了 setuptools的包管理工具: easy_install  和  pip , 目前官方推荐使用 pip。    
    Python pip包管理
  • ubuntu如何重新编译内核
  • 改善Java代码之慎用java动态编译

目录