20.BeautifulSoup库的安装及导入

文章目录

    • 1.BeautifulSoup库简介
    • 2.BeautifulSoup库的安装
    • 3.BeautifulSoup和beautifulsoup4的区别
    • 4.获取网页源代码知识回顾
      • 4.1 手动获取网页的源代码
      • 4.2 requests库获取网页的源代码
    • 5. 利用bs4库输出网页源代码
    • 6.bs4库的导入语法

1.BeautifulSoup库简介

BeautifulSoup库是Python的一个解析文档库。

BeautifulSoup库提供了一些简单的方法来遍历解析HTML和XML文档,并提供了一些方便的方法来搜索和操作文档中的数据。

BeautifulSoup库可以帮助我们快速而方便地从网页中提取所需的信息,例如标题、链接、段落等。

【官方网站】

https://www.crummy.com/software/BeautifulSoup/

2.BeautifulSoup库的安装

BeautifulSoup是Python的第三方库,使用前需要先进行安装。

【以win10系统为例】

  1. 点击任务栏中的放大镜
  2. 在搜索框中输入cmd。
  3. 右键单击【命令提示符】。
  4. 选择【以管理员身份运行】。

在这里插入图片描述

  1. 在【命令提示符】界面输入下面的安装命令。
pip install -i https://pypi.tuna.tsinghua.edu.cn/simple/ beautifulsoup4

注意这里安装的库名为beautifulsoup4,而不是BeautifulSoup

beautifulsoup4中最后面的数字4表示库的版本。

【命令解析】

install [ɪnˈstɔːl]:安装。

  • pip: 是Python的包管理工具,用于安装、升级和卸载Python包。
  • install: 是pip的一个子命令,用于安装Python包。
  • -i: 是pip install的一个选项,用于指定包的索引地址。
  • https://pypi.tuna.tsinghua.edu.cn/simple/: 是一个包的索引地址,指定了从该地址下载包,可以替换成其它地址。
  • beautifulsoup4是库名,这里替换成你要安装的任何库名。
  • 库名和前面的索引地址之间有1个空格。
  1. 出现【Successfully installed beautifulsoup4…】表示安装成功。

在这里插入图片描述

3.BeautifulSoup和beautifulsoup4的区别

BeautifulSoup和beautifulsoup4实际上是同一个库的不同版本。

BeautifulSoup是一个用于解析HTML和XML文档的Python库,它提供了一种简单的方式来遍历文档树、搜索特定的元素以及对文档进行修改。

BeautifulSoup最初由Leonard Richardson开发,目前最新的版本是3.2.2。

beautifulsoup4是BeautifulSoup的第四个主要版本,也是目前最新的版本。

它在功能上与之前的版本相似,但有一些改进和新增的功能。

beautifulsoup4支持更多的解析器,包括Python标准库中的html.parser、lxml、html5lib等。

此外,beautifulsoup4还提供了一些新的方法和属性,使得解析和处理文档更加方便。

因此,如果你要使用BeautifulSoup库,建议使用最新的beautifulsoup4版本,以获得更好的功能和性能。

4.获取网页源代码知识回顾

【要访问的网页】

http://python123.io/ws/demo.html

4.1 手动获取网页的源代码

  1. 打开浏览器,在网页中输入上面的网址。
  2. 鼠标右键点击【查看网页源代码】。

在这里插入图片描述

得到的网页源代码如下所示:

在这里插入图片描述

4.2 requests库获取网页的源代码

【代码示例】

import requests
url = 'http://python123.io/ws/demo.html'# r是变量名,数据类型为Response对象
r = requests.get(url)# 查看对象的属性语法:对象.属性
# r是对象名
# text是Response对象的属性,作用是输出网页源代码,类型为字符串数据
html = r.textprint(type(html))
print(html)
<class 'str'>
<html><head><title>This is a python demo page</title></head>
<body>
<p class="title"><b>The demo python introduces several python courses.</b></p>
<p class="course">Python is a wonderful general-purpose programming language. You can learn Python from novice to professional by tracking the following courses:
<a href="http://www.icourse163.org/course/BIT-268001" class="py1" id="link1">Basic Python</a> and <a href="http://www.icourse163.org/course/BIT-1001870001" class="py2" id="link2">Advanced Python</a>.</p>
</body></html>

输出的html数据类型为字符串。
html存储的就是网页的源代码。

5. 利用bs4库输出网页源代码

【beautifulsoup4的安装命令】

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

【温馨提示】

我们在安装的时候使用的库名为beautifulsoup4,但在编写程序时我们通常简写为bs4

通过bs4我们也可以输出网页的源代码。

【代码示例】

import requests
url = 'http://python123.io/ws/demo.html'# r是变量名,数据类型为Response对象
r = requests.get(url)# 查看对象的属性语法:对象.属性
# r是对象名
# text是Response对象的属性,作用是输出网页源代码,类型为字符串数据
html = r.textfrom bs4 import BeautifulSoup
soup = BeautifulSoup(html , "html.parser")
print(soup)
<html><head><title>This is a python demo page</title></head>
<body>
<p class="title"><b>The demo python introduces several python courses.</b></p>
<p class="course">Python is a wonderful general-purpose programming language. You can learn Python from novice to professional by tracking the following courses:
<a class="py1" href="http://www.icourse163.org/course/BIT-268001" id="link1">Basic Python</a> and <a class="py2" href="http://www.icourse163.org/course/BIT-1001870001" id="link2">Advanced Python</a>.</p>
</body></html>

利用bs4库我们也同样得到了网页的源代码。

6.bs4库的导入语法

from bs4 import BeautifulSoup
  • bs4是库名。
  • BeautifulSoup是bs4库的类。
  • 上述代码表示导入bs4库的`BeautifulSoup类。
soup = BeautifulSoup(html , "html.parser")
  • soup是变量名,数据类型为字符串。
  • BeautifulSoup是类名。
  • html是要解析的对象,html存储的是网页的源代码。
  • html.parser是解析器。解析器的知识在后面章节有讲解。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.hqwc.cn/news/9657.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

【机器学习】机器故障的二元分类模型-Kaggle竞赛

竞赛介绍 数据集描述 本次竞赛的数据集&#xff08;训练和测试&#xff09;是从根据机器故障预测训练的深度学习模型生成的。特征分布与原始分布接近&#xff0c;但不完全相同。随意使用原始数据集作为本次竞赛的一部分&#xff0c;既可以探索差异&#xff0c;也可以了解在训…

Vue中的el-date-picker时间选择器的使用

1、value-format属性设置需要什么格式的时间 2、type类型选择datetime、date 年月日时分秒 <el-date-pickervalue-format"yyyy-MM-dd HH:mm:ss"v-model"excelRuleForm.startTime"type"datetime":placeholder"选择开始时间"> &…

Web3 处理智能合约部署到本地区块链,并在本地进行测试

上文 Web3 在Truffle项目中编写出自己的第一个solidity智能合约我们演示了 在Truffle环境下写一个智能合约并编译的功能 编译出的文件夹中的这个JSON就非常重要了 我们就可以通过 它这个ABI链接到需要的智能合约程序上去 但这也仅仅是编译完了 我们的智能合约还没有部署到我们…

SpringBoot--超时熔断器

需求背景 如果一个服务中有很多涉及需要服务间熔断的地方&#xff0c;就会出现N多下述代码&#xff1a; 1.N个fegnClient接口 FeignClient(name "hello-world-service", fallback HelloWorldFallback.class) public interface HelloWorldService {GetMapping(&q…

HDLBits刷题笔记9:Circuits.Sequential Logic.Counters + Shift Registers

Counters Four-bit binary counter module top_module (input clk,input reset, // Synchronous active-high resetoutput reg [3:0] q);always (posedge clk) beginif(reset)q < 0;elseq < q 1;end endmoduleDecade counter 建立一个计数器&#xff0c;从0计数…

【深度学习】深度强化学习初学者指南

一、说明 GAN&#xff08;Generative Adversarial Networks&#xff09;是一种深度学习模型&#xff0c;它由两个神经网络组成&#xff1a;一个生成网络和一个判别网络。生成网络学习如何生成类似于给定数据集的新数据&#xff0c;而判别网络则学习如何区分生成网络生成的数据和…

vscode 插件系统的运行机制!

做vscode二次开发有一段时间了&#xff0c;平时都是任务比较重&#xff0c;最近有时间做下总结&#xff0c;详细的讲解下vscode 插件系统的运行机制&#xff0c;vscode做为最受欢迎的编辑器&#xff0c;有着庞大的插件市场。其插件系统确实很复杂&#xff0c;文章很长&#xff…

Maven基础概念

仓库 作用&#xff1a;用于存储资源&#xff0c;包含各种jar包 仓库分类 本地仓库远程仓库 2.1中央仓库 2.2私服&#xff08;用于解决下载速度慢&#xff0c;版权问题等&#xff09; 1.maven坐标 <groupId></groupId>当前MAVEN项目隶属组织名称 <artifactId…

nginx纳入skywalking调用链监控

nginx纳入skywalking调用链监控 一、说明二、nginx部署2.1 OpenResty介绍2.2 准备SkyWalking Nginx Agent2.3 docker方式部署OpenResty2.3.1 修改配置文件2.3.2 启动OpenResty容器 2.4 验证 一、说明 服务器中已部署好skywalking&#xff0c;并将tomcat纳入skywalking监控(tom…

Unity包体积优化实践

目录 简述优化前优化中assets目录资源ab包动态下发资源大小优化dll大小优化场景模型动态下载和加载优化assets目录后大小 lib目录优化目标架构裁剪代码优化代码和引用 其他优化项Shader优化Release模式编译选项 优化后 简述 在移动端App混合Unity开发的项目中&#xff0c;Unit…

MATLAB图像处理实现高光抑制

下面是的几个用MATLAB进行高光抑制的处理例子。 1. 基于最大值滤波的亮光抑制方法 原理是用某像素周围一定大小的邻域中的最大值减去该像素值&#xff0c;可达到亮光抑制的效果。在MATLAB中&#xff0c;可以使用mat2gray函数将图像归一化后&#xff0c;再使用imextendedmax函…

【花雕】全国青少年机器人技术一级考试备考实操搭建手册10

随着科技的不断进步&#xff0c;机器人技术已经成为了一个重要的领域。在这个领域中&#xff0c;机械结构是机器人设计中至关重要的一部分&#xff0c;它决定了机器人的形态、运动方式和工作效率。对于青少年机器人爱好者来说&#xff0c;了解机械结构的基础知识&#xff0c;掌…