当前位置: 首页 > news >正文

开源消息代理组件mosquitto

# ll
total 556
-rw-r----- 1 sk sk 148417 Mar  6 14:59 libuv-1.44.2-1.el7.x86_64.rpm
-rw-r----- 1 sk sk 120717 Mar  6 14:59 libwebsockets-3.0.1-2.el7.x86_64.rpm
-rw-r----- 1 sk sk 293429 Mar  6 14:59 mosquitto-1.6.10-1.el7.x86_64.rpm

将用到的依赖上传到主机上,分别安装lib*类依赖

1.安装libuv-1.44.2-1.el7.x86_64.rpm

# sudo yum install libuv-1.44.2-1.el7.x86_64.rpm -y
Loaded plugins: fastestmirror
Examining libuv-1.44.2-1.el7.x86_64.rpm: 1:libuv-1.44.2-1.el7.x86_64
Marking libuv-1.44.2-1.el7.x86_64.rpm to be installed
Resolving Dependencies
--> Running transaction check
---> Package libuv.x86_64 1:1.44.2-1.el7 will be installed
--> Finished Dependency ResolutionDependencies Resolved==================================================================================================================================================Package                    Arch                        Version                             Repository                                       Size
==================================================================================================================================================
Installing:libuv                      x86_64                      1:1.44.2-1.el7                      /libuv-1.44.2-1.el7.x86_64                      393 kTransaction Summary
==================================================================================================================================================
Install  1 PackageTotal size: 393 k
Installed size: 393 k
Downloading packages:
Running transaction check
Running transaction test
Transaction test succeeded
Running transactionInstalling : 1:libuv-1.44.2-1.el7.x86_64                                                                                                    1/1 Verifying  : 1:libuv-1.44.2-1.el7.x86_64                                                                                                    1/1 Installed:libuv.x86_64 1:1.44.2-1.el7                                                                                                                     Complete!

2.安装libwebsockets-3.0.1-2.el7.x86_64.rpm

# sudo yum install libwebsockets-3.0.1-2.el7.x86_64.rpm  -y
Loaded plugins: fastestmirror
Examining libwebsockets-3.0.1-2.el7.x86_64.rpm: libwebsockets-3.0.1-2.el7.x86_64
Marking libwebsockets-3.0.1-2.el7.x86_64.rpm to be installed
Resolving Dependencies
--> Running transaction check
---> Package libwebsockets.x86_64 0:3.0.1-2.el7 will be installed
--> Finished Dependency ResolutionDependencies Resolved==================================================================================================================================================Package                         Arch                     Version                       Repository                                           Size
==================================================================================================================================================
Installing:libwebsockets                   x86_64                   3.0.1-2.el7                   /libwebsockets-3.0.1-2.el7.x86_64                   269 kTransaction Summary
==================================================================================================================================================
Install  1 PackageTotal size: 269 k
Installed size: 269 k
Downloading packages:
Running transaction check
Running transaction test
Transaction test succeeded
Running transactionInstalling : libwebsockets-3.0.1-2.el7.x86_64                                                                                               1/1 Verifying  : libwebsockets-3.0.1-2.el7.x86_64                                                                                               1/1 Installed:libwebsockets.x86_64 0:3.0.1-2.el7                                                                                                              Complete!

3.最后安装mqtt

# sudo yum install -y mosquitto-1.6.10-1.el7.x86_64.rpm 
Loaded plugins: fastestmirror
Examining mosquitto-1.6.10-1.el7.x86_64.rpm: mosquitto-1.6.10-1.el7.x86_64
Marking mosquitto-1.6.10-1.el7.x86_64.rpm to be installed
Resolving Dependencies
--> Running transaction check
---> Package mosquitto.x86_64 0:1.6.10-1.el7 will be installed
--> Finished Dependency ResolutionDependencies Resolved==================================================================================================================================================Package                      Arch                      Version                           Repository                                         Size
==================================================================================================================================================
Installing:mosquitto                    x86_64                    1.6.10-1.el7                      /mosquitto-1.6.10-1.el7.x86_64                    748 kTransaction Summary
==================================================================================================================================================
Install  1 PackageTotal size: 748 k
Installed size: 748 k
Downloading packages:
Running transaction check
Running transaction test
Transaction test succeeded
Running transactionInstalling : mosquitto-1.6.10-1.el7.x86_64                                                                                                  1/1 Verifying  : mosquitto-1.6.10-1.el7.x86_64                                                                                                  1/1 Installed:mosquitto.x86_64 0:1.6.10-1.el7                                                                                                                 Complete!

mosquitto的启动检查命令

service mosquitto start
service mosquitto stop
service mosquitto restart
service mosquitto status

检查运行状态

# service  mosquitto status
Redirecting to /bin/systemctl status mosquitto.service
● mosquitto.service - Mosquitto MQTT v3.1/v3.1.1 BrokerLoaded: loaded (/usr/lib/systemd/system/mosquitto.service; disabled; vendor preset: disabled)Active: inactive (dead)Docs: man:mosquitto.conf(5)man:mosquitto(8)# service  mosquitto start
Redirecting to /bin/systemctl start mosquitto.service
==== AUTHENTICATING FOR org.freedesktop.systemd1.manage-units ===
Authentication is required to manage system services or units.
Authenticating as: root
Password: # sudo service  mosquitto start   
Redirecting to /bin/systemctl start mosquitto.service# sudo service  mosquitto status
Redirecting to /bin/systemctl status mosquitto.service
● mosquitto.service - Mosquitto MQTT v3.1/v3.1.1 BrokerLoaded: loaded (/usr/lib/systemd/system/mosquitto.service; disabled; vendor preset: disabled)Active: active (running) since Mon 2023-03-06 16:59:16 CST; 5s agoDocs: man:mosquitto.conf(5)man:mosquitto(8)Main PID: 32450 (mosquitto)Tasks: 1Memory: 856.0KCGroup: /system.slice/mosquitto.service└─32450 /usr/sbin/mosquitto -c /etc/mosquitto/mosquitto.confMar 06 16:59:16 hostname systemd[1]: Starting Mosquitto MQTT v3.1/v3.1.1 Broker...
Mar 06 16:59:16 hostname mosquitto[32450]: 1678093156: mosquitto version 1.6.10 starting
Mar 06 16:59:16 hostname mosquitto[32450]: 1678093156: Config loaded from /etc/mosquitto/mosquitto.conf.
Mar 06 16:59:16 hostname mosquitto[32450]: 1678093156: Opening ipv4 listen socket on port 1883.
Mar 06 16:59:16 hostname mosquitto[32450]: 1678093156: Opening ipv6 listen socket on port 1883.
Mar 06 16:59:16 hostname systemd[1]: Started Mosquitto MQTT v3.1/v3.1.1 Broker.

验证是否可用

打开两个终端,模拟发送端与接收端,其中,-t  指定主题  -m 指定内容

a.接收端

# mosquitto_sub  -h 10.19.49.27 -t "mostt"  -v

b.发送端

# mosquitto_pub -h 10.15.49.27 -t  "mostt" -m "hello word"
# mosquitto_pub -h 10.15.49.27 -t  "mostt" -m "hello word"
# mosquitto_pub -h 10.15.49.27 -t  "mostt" -m "hello word3"
# mosquitto_pub -h 10.15.49.27 -t  "mostt" -m "hello word3"
# mosquitto_pub -h 10.15.49.27 -t  "mostt" -m "hello word4"# mosquitto_pub -h 10.15.49.27 -t  "01topic" -m "mosquitto test01"
# mosquitto_pub -h 10.15.49.27 -t  "01topic" -m "mosquitto test02"
# mosquitto_pub -h 10.15.49.27 -t  "01topic" -m "mosquitto test03"

此时,再查看接收端,哪个主题下的哪些内容

# mosquitto_sub  -h 10.15.49.27 -t "mostt"  -v mostt hello word
mostt hello word
mostt hello word3
mostt hello word3
mostt hello word4# mosquitto_sub  -h 10.15.49.27 -t "01topic"  -v           
01topic mosquitto test01
01topic mosquitto test02
01topic mosquitto test03

跟kafka类似,访问安全性中都可以设置访问时的用户名密码

添加如下文件内容

# sudo less  /etc/mosquitto/mosquitto.conf  | grep -v "#" |grep  -v "^$"
pid_file /var/run/mosquitto.pid
persistence true
persistence_location /var/lib/mosquitto/
allow_anonymous false
password_file /etc/mosquitto/pwdfile
acl_file /etc/mosquitto/acl

参数含义

# 进程号文件
pid_file /var/run/mosquitto.pid# 是否持久化
persistence true 
persistence_location /var/lib/mosquitto/# 关闭匿名访问
allow_anonymous false# 密码和访问控制
password_file /etc/mosquitto/pwdfile
acl_file /etc/mosquitto/acl

设置Mosquitto的交互账号

# sudo mosquitto_passwd -c /etc/mosquitto/pwdfile testuser1
Password: 
Reenter password: # sudo mosquitto_passwd /etc/mosquitto/pwdfile testuser2    
Password: 
Reenter password: 

第一个账号需要加-c参数,因为密码文件没有生成,后面的账号不需要再加c参数,否则是重新生成密码文件并写入账号。

配置账号与发布订阅之间的关系:

vim /etc/mosquitto/acl
# cat /etc/mosquitto/acl
user testuser1
topic write usertopic
user testuser2
topic read usertopic

设置testuser1账号只能在主题usertopic上进行发布

设置testuser2账号只能在主题usertopic上进行订阅

重启服务

# sudo service mosquitto status
Redirecting to /bin/systemctl status mosquitto.service
● mosquitto.service - Mosquitto MQTT v3.1/v3.1.1 BrokerLoaded: loaded (/usr/lib/systemd/system/mosquitto.service; disabled; vendor preset: disabled)Active: active (running) since Mon 2023-03-06 16:59:16 CST; 46min agoDocs: man:mosquitto.conf(5)man:mosquitto(8)Main PID: 32450 (mosquitto)Tasks: 1Memory: 872.0KCGroup: /system.slice/mosquitto.service└─32450 /usr/sbin/mosquitto -c /etc/mosquitto/mosquitto.confMar 06 17:17:46 hostname mosquitto[32450]: 1678094266: New connection from 10.15.49.27 on port 1883.
Mar 06 17:17:46 hostname mosquitto[32450]: 1678094266: New client connected from 10.15.49.27 as mosq-D0pkHhYybXF0xuGhDW (p2, c1, k60).
Mar 06 17:17:46 hostname mosquitto[32450]: 1678094266: Client mosq-D0pkHhYybXF0xuGhDW disconnected.
Mar 06 17:17:49 hostname mosquitto[32450]: 1678094269: New connection from 10.15.49.27 on port 1883.
Mar 06 17:17:49 hostname mosquitto[32450]: 1678094269: New client connected from 10.15.49.27 as mosq-IujfILsMdH7PyItQVe (p2, c1, k60).
Mar 06 17:17:49 hostname mosquitto[32450]: 1678094269: Client mosq-IujfILsMdH7PyItQVe disconnected.
Mar 06 17:17:51 hostname mosquitto[32450]: 1678094271: New connection from 10.15.49.27 on port 1883.
Mar 06 17:17:51 hostname mosquitto[32450]: 1678094271: New client connected from 10.15.49.27 as mosq-J1wdgGJ57LPjucsxIh (p2, c1, k60).
Mar 06 17:17:51 hostname mosquitto[32450]: 1678094271: Client mosq-J1wdgGJ57LPjucsxIh disconnected.
Mar 06 17:34:31 hostname mosquitto[32450]: 1678095271: Client mosq-daklhgLG1gK0voclKu disconnected.
[sk@hostname ~]$ 
[sk@hostname ~]$ sudo service mosquitto restart
Redirecting to /bin/systemctl restart mosquitto.service
[sk@hostname ~]$ 
[sk@hostname ~]$ sudo service mosquitto status
Redirecting to /bin/systemctl status mosquitto.service
● mosquitto.service - Mosquitto MQTT v3.1/v3.1.1 BrokerLoaded: loaded (/usr/lib/systemd/system/mosquitto.service; disabled; vendor preset: disabled)Active: active (running) since Mon 2023-03-06 17:45:39 CST; 4s agoDocs: man:mosquitto.conf(5)man:mosquitto(8)Main PID: 10859 (mosquitto)Tasks: 1Memory: 856.0KCGroup: /system.slice/mosquitto.service└─10859 /usr/sbin/mosquitto -c /etc/mosquitto/mosquitto.confMar 06 17:45:39 hostname systemd[1]: Starting Mosquitto MQTT v3.1/v3.1.1 Broker...
Mar 06 17:45:39 hostname mosquitto[10859]: 1678095939: mosquitto version 1.6.10 starting
Mar 06 17:45:39 hostname mosquitto[10859]: 1678095939: Config loaded from /etc/mosquitto/mosquitto.conf.
Mar 06 17:45:39 hostname mosquitto[10859]: 1678095939: Opening ipv4 listen socket on port 1883.
Mar 06 17:45:39 hostname mosquitto[10859]: 1678095939: Opening ipv6 listen socket on port 1883.
Mar 06 17:45:39 hostname systemd[1]: Started Mosquitto MQTT v3.1/v3.1.1 Broker.

订阅和发布主题都需要提供正确的账号和指定的主题,如果主题不是acl中指定的,则无法收到消息。需要给用户授权。

 

# sudo mosquitto_pub -h  10.15.49.27 -t "usertopic" -u testuser1 -P 123456 -m "secreat" 
# sudo mosquitto_pub -h  10.15.49.27 -t "usertopic" -u testuser1 -P 123456 -m "secreat2323"
# sudo mosquitto_sub -h 10.15.49.27 -t "usertopic" -v -u  testuser2 -P 123456 
usertopic secreat
usertopic secreat2323

相关文章:

开源消息代理组件mosquitto

# ll total 556 -rw-r----- 1 sk sk 148417 Mar 6 14:59 libuv-1.44.2-1.el7.x86_64.rpm -rw-r----- 1 sk sk 120717 Mar 6 14:59 libwebsockets-3.0.1-2.el7.x86_64.rpm -rw-r----- 1 sk sk 293429 Mar 6 14:59 mosquitto-1.6.10-1.el7.x86_64.rpm 将用到的依赖上传到主机…...

vuex的五个属性及使用方法示例

一,Vuex简介 Vuex是Vue.js的状态管理库,它通过中心化的状态管理使得组件间的数据共享更加容易。 Vuex包含五个核心属性:state、getters、mutations、actions和modules。 Vuex是Vue.js的状态管理库,它提供了一种集中式存储管理应…...

9.SpringSecurity核心过滤器-SecurityContextPersistenceFilter

SpringSecurity核心过滤器-SecurityContextPersistenceFilter 一、SpringSecurity中的核心组件 在SpringSecurity中的jar分为4个,作用分别为 jar作用spring-security-coreSpringSecurity的核心jar包,认证和授权的核心代码都在这里面spring-security-co…...

23种设计模式-桥接模式

概念 桥接模式是一种结构型设计模式,它通过将抽象与其实现分离来解耦。它使用接口(抽象类)作为桥梁,将一个抽象类与其实现类的代码分别独立开来,从而使它们可以各自独立地变化。桥接模式的核心思想是“组合优于继承”…...

TCP PMTU 静态路由

HTTP协议 --- 超文本传输协议TCP --- 80端口超文本 --- 包含有超链接link和多媒体元素标记的文本TCP协议是一种面向连接的可靠性传输协议面向连接:数据在传输前,收发双方建立一条逻辑通道。可靠性确认机制:传输确认,每接受一个数据…...

Android动画——属性动画

在属性动画中,常用到的API有ValueAnimator,ObjectAnimator。ValueAnimator:时间引擎,负责计算各个帧的属性值,基本上其他属性动画都会直接或间接继承它;ObjectAnimator: ValueAnimator 的子类&a…...

华为OD机试真题Python实现【寻找连续区间】真题+解题思路+代码(20222023)

寻找连续区间 题目 给定一个含有N个正整数的数组, 求出有多少个连续区间(包括单个正整数), 它们的和大于等于x。 🔥🔥🔥🔥🔥👉👉👉👉👉👉 华为OD机试(Python)真题目录汇总 ## 输入 第一行两个整数N x (0 < N <= 100000 ,0 <= x <=…...

15. 三数之和

给你一个整数数组 nums &#xff0c;判断是否存在三元组 [nums[i], nums[j], nums[k]] 满足 i ! j、i ! k 且 j ! k &#xff0c;同时还满足 nums[i] nums[j] nums[k] 0 。请 你返回所有和为 0 且不重复的三元组。 注意&#xff1a;答案中不可以包含重复的三元组。 示例 …...

40-Golang中的文件

Golang中的文件基本介绍文件的打开和关闭读文件操作应用实例写文件操作实例判断文件是否存在基本介绍 文件在程序中是以流的形式存在的 流&#xff1a;数据在数据源(文件)和程序(内存)之间经历的路程 输入流&#xff1a;数据从数据源到程序之间的路径 输出流&#xff1a;数据…...

Springboot整合RabbitMQ并使用

1、Springboot整合RabbitMQ 1、引入场景启动器 <dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-amqp</artifactId> </dependency>引入AMQP场景启动器之后&#xff0c;RabbitAutoConfiguratio…...

Java中方法引用(引用静态方法、引用成员方法(引用其他类的成员方法、引用本类的成员方法、引用父类的成员方法)、引用构造方法、其他调用方式、小练习)

方法引用&#xff1a;把已经存在的方法拿过来用&#xff0c;当作函数式接口中抽象方法的方法体 我们前面学到Arrays工具类中的sort方法&#xff0c;当我们需要指定排序规则时&#xff0c;需要传递Comparator接口的实现类对象&#xff0c;我们之前使用匿名内部类类的形式作为参…...

整理了100道关于Python基础知识的练习题,记得收藏~

实例1.数字组合 题目&#xff1a; 有四个数字&#xff1a;1、2、3、4&#xff0c;能组成多少个互不相同且无重复数字的三位数&#xff1f;各是多少&#xff1f; 程序分析&#xff1a; 遍历全部可能&#xff0c;把有重复的剃掉。 total0 for i in range(1,5):for j in range(…...

OSG三维渲染引擎编程学习之七十七:“第七章:OSG场景图形交互” 之 “7.8 场景交互”

目录 第七章 OSG场景图形交互 7.8 场景交互 7.8.1 osgGA库 7.8.2 事件消息处理 7.8.3 程序抓图示例...

797.差分

输入一个长度为 n的整数序列。 接下来输入 m个操作&#xff0c;每个操作包含三个整数 l,r,c&#xff0c;表示将序列中 [l,r] 之间的每个数加上 c。 请你输出进行完所有操作后的序列。 输入格式 第一行包含两个整数 n和 m。 第二行包含 n个整数&#xff0c;表示整数序列。 …...

为什么说要慎用BeanUtils,因为性能真的拉跨

1 背景之前在专栏中讲过“不推荐使用属性拷贝工具”&#xff0c;推荐直接定义转换类和方法使用 IDEA 插件自动填充 get / set 函数。不推荐的主要理由是&#xff1a;有些属性拷贝工具性能有点差有些属性拷贝工具有“BUG”使用属性拷贝工具容易存在一些隐患&#xff08;后面例子…...

【项目设计】高并发内存池(六)[细节优化+测试]

&#x1f387;C学习历程&#xff1a;入门 博客主页&#xff1a;一起去看日落吗持续分享博主的C学习历程博主的能力有限&#xff0c;出现错误希望大家不吝赐教分享给大家一句我很喜欢的话&#xff1a; 也许你现在做的事情&#xff0c;暂时看不到成果&#xff0c;但不要忘记&…...

同模块设置不同应用主题方案

有时候公司内部会有不同应用但是有部分模块功能一样&#xff0c;只根据应用角色有些细节逻辑区分的场景。这时候往往采用模块化采用以应用至不同的APP。如果APP主题不一致&#xff0c;该如果解决。 方案&#xff1a; 在不同应用的config.gradle 下面根据不同应用定义不同的a…...

centos7 安装 hyperf

​​​​​​PHP > 7.4 Swoole PHP 扩展 > 4.5&#xff0c;并关闭了 Short Name OpenSSL PHP 扩展 JSON PHP 扩展 PDO PHP 扩展 Redis PHP 扩展 Protobuf PHP 扩展 composer create-project hyperf/hyperf-skeleton 推荐安装项 全部选n php.ini [swoole] extens…...

RZ/G2UL核心板-40℃低温启动测试

1. 测试对象HD-G2UL-EVM基于HD-G2UL-CORE工业级核心板设计&#xff0c;一路千兆网口、一路CAN-bus、 3路TTL UART、LCD、WiFi、CSI 摄像头接口等&#xff0c;接口丰富&#xff0c;适用于工业现场应用需求&#xff0c;亦方便用户评估核心板及CPU的性能。HD-G2UL-CORE系列工业级核…...

PyQt5可视化 7 饼图和柱状图实操案例 ①Qt项目的创建

目录 一、新建Qt项目 二、添加组件和布局 三、添加资源 1. 新建资源文件 2. 添加图标资源 四、frameHead 1. toolBtnGenData 2. toolBtnCounting 3. comboTheme 4. comboAnimation 5. Horizontal Spacer 6. toolBtnQuit 7. 设置toolBtnQuit的功能 8. frameHead的…...

SkyWalking 10.2.0 SWCK 配置过程

SkyWalking 10.2.0 & SWCK 配置过程 skywalking oap-server & ui 使用Docker安装在K8S集群以外&#xff0c;K8S集群中的微服务使用initContainer按命名空间将skywalking-java-agent注入到业务容器中。 SWCK有整套的解决方案&#xff0c;全安装在K8S群集中。 具体可参…...

基于距离变化能量开销动态调整的WSN低功耗拓扑控制开销算法matlab仿真

目录 1.程序功能描述 2.测试软件版本以及运行结果展示 3.核心程序 4.算法仿真参数 5.算法理论概述 6.参考文献 7.完整程序 1.程序功能描述 通过动态调整节点通信的能量开销&#xff0c;平衡网络负载&#xff0c;延长WSN生命周期。具体通过建立基于距离的能量消耗模型&am…...

Robots.txt 文件

什么是robots.txt&#xff1f; robots.txt 是一个位于网站根目录下的文本文件&#xff08;如&#xff1a;https://example.com/robots.txt&#xff09;&#xff0c;它用于指导网络爬虫&#xff08;如搜索引擎的蜘蛛程序&#xff09;如何抓取该网站的内容。这个文件遵循 Robots…...

Spring AI 入门:Java 开发者的生成式 AI 实践之路

一、Spring AI 简介 在人工智能技术快速迭代的今天&#xff0c;Spring AI 作为 Spring 生态系统的新生力量&#xff0c;正在成为 Java 开发者拥抱生成式 AI 的最佳选择。该框架通过模块化设计实现了与主流 AI 服务&#xff08;如 OpenAI、Anthropic&#xff09;的无缝对接&…...

多种风格导航菜单 HTML 实现(附源码)

下面我将为您展示 6 种不同风格的导航菜单实现&#xff0c;每种都包含完整 HTML、CSS 和 JavaScript 代码。 1. 简约水平导航栏 <!DOCTYPE html> <html lang"zh-CN"> <head><meta charset"UTF-8"><meta name"viewport&qu…...

【论文阅读28】-CNN-BiLSTM-Attention-(2024)

本文把滑坡位移序列拆开、筛优质因子&#xff0c;再用 CNN-BiLSTM-Attention 来动态预测每个子序列&#xff0c;最后重构出总位移&#xff0c;预测效果超越传统模型。 文章目录 1 引言2 方法2.1 位移时间序列加性模型2.2 变分模态分解 (VMD) 具体步骤2.3.1 样本熵&#xff08;S…...

python报错No module named ‘tensorflow.keras‘

是由于不同版本的tensorflow下的keras所在的路径不同&#xff0c;结合所安装的tensorflow的目录结构修改from语句即可。 原语句&#xff1a; from tensorflow.keras.layers import Conv1D, MaxPooling1D, LSTM, Dense 修改后&#xff1a; from tensorflow.python.keras.lay…...

快速排序算法改进:随机快排-荷兰国旗划分详解

随机快速排序-荷兰国旗划分算法详解 一、基础知识回顾1.1 快速排序简介1.2 荷兰国旗问题 二、随机快排 - 荷兰国旗划分原理2.1 随机化枢轴选择2.2 荷兰国旗划分过程2.3 结合随机快排与荷兰国旗划分 三、代码实现3.1 Python实现3.2 Java实现3.3 C实现 四、性能分析4.1 时间复杂度…...

倒装芯片凸点成型工艺

UBM&#xff08;Under Bump Metallization&#xff09;与Bump&#xff08;焊球&#xff09;形成工艺流程。我们可以将整张流程图分为三大阶段来理解&#xff1a; &#x1f527; 一、UBM&#xff08;Under Bump Metallization&#xff09;工艺流程&#xff08;黄色区域&#xff…...

Python爬虫(四):PyQuery 框架

PyQuery 框架详解与对比 BeautifulSoup 第一部分&#xff1a;PyQuery 框架介绍 1. PyQuery 是什么&#xff1f; PyQuery 是一个 Python 的 HTML/XML 解析库&#xff0c;它采用了 jQuery 的语法风格&#xff0c;让开发者能够用类似前端 jQuery 的方式处理文档解析。它的核心特…...