URDF文件

news2024/10/6 10:29:33

URDF(Universal Robot Description Format):通用机器人描述格式,包含的内容有:连杆、关节,运动学和动力学参数、可视化模型、碰撞检测模型等。

父子关系树:连杆link1 --> 关节joint1 --> 连杆link2 --> 关节joint2 ·····

下一个连杆/关节的位置是相对上一个连杆/关节描述的,形成一个位姿关系链,比如改动关节joint1的位姿,则关节joint1后面的所有连杆和关节的位姿都随之改变。

一、连杆:描述具有惯性、视觉特征和碰撞特性的刚体。

连杆属性:名称

name (必选参数):连杆的名称

连杆元素:

1、<inertial> (可选:默认为零质量和零惯性):连杆的质量、重心位置及其相对于质心的惯性张量。

   <origin> (可选:默认为identity):这个参数(平移、旋转)描述了连杆的质心坐标系C相对于连杆坐标系L的位置xyz和方向rpy。

    xyz (可选:默认为零向量):表示从Lo(连杆坐标系原点)到Co(连杆的质心)的位置向量x=L̂x + y L̂y + z L̂z,其中L̂x, L̂y, L̂z是连杆坐标系L的正交单位向量。

    rpy (可选:默认为标识):表示C的单位向量Ĉx, Ĉy, Ĉz相对于连杆坐标系L的方向,表示为以弧度为单位的欧拉旋转序列(rpy)。Ĉx, Ĉy, Ĉz不需要与连杆的主轴惯性对齐。

    <mass>:连杆的质量kg

    <inertia>:惯性张量(在连杆质心坐标系下表达)。

2、<visual>(可选参数):连杆的视觉特征。指定对象(长方体、圆柱体等)的形状以便可视化。对于同一个连杆,可以存在多个<visual>标记的实例,他们定义的几何图形的并集作为连杆的视觉表示。

3、<collision> (可选):连杆的碰撞特性。与连杆的视觉特征不一定是相同的,通常使用更简单的碰撞模型来减少计算时间。同一连杆可以存在多个<collision>标签实例,它们定义的几何图形的并集作为连杆的碰撞表示。

二、关节:joint,描述了关节的运动学和动力学,还指定了关节的安全极限。

关节属性:名称和类型

name (required):指定关节的唯一名称

type (required):指定运动类型,可以是以下类型之一:

  • revolute-沿轴旋转的铰链关节,即转动关节,具有由上限和下限指定的有限范围。
  • continuous-绕轴旋转的连续铰链关节,即转动关节,没有上限和下限。
  • prismatic-沿轴滑动的滑动关节,即平动关节,具有由上限和下限指定的有限范围。
  • fixed-这不是真正的关节,因为它不能移动。即固定关节,所有自由度都被锁定。这种类型的关节不需要<axis>、<calibration>、<dynamics>、<limits>或<safety_controller>参数。
  • floating-浮动关节,此关节允许所有6个自由度的运动。
  • planar-平面关节,该关节允许在垂直于轴线的平面内运动。

三、导出URDF文件:

1、添加基准轴

菜单栏:插入 --> 参考几何体 --> 基准轴

① 选择某个零件的边线/轴作为基准轴
② 选择两个相交平面的相交线作为基准轴
③ 选择两个点构成的直线作为基准轴
④ 选择圆柱/圆锥的中轴线作为基准轴
⑤ 选择点垂直于面的线作为基准轴
注:基准轴就是关节旋转/移动的参考轴线,建立的基准轴/坐标系等最好重新命名成全英文的名称

2、添加点

3、添加坐标系

提前在放置坐标系的地方添加一个点 --> 装配体 --> 参考几何体 --> 坐标系 --> 调整坐标轴的方向。

4、插件安装

下载插件:solidworks_urdf_exporter

Releases · ros/solidworks_urdf_exporter · GitHub

下载对应solidworks版本的exe文件,直接安装就可以了。

四、生成Link和Joint

1、打开插件

工具 --> Tools --> Export as URDF,或直接在右上角搜索框输入urdf。

2、设置连杆父子关系

base_link是整个机器人的根连杆,整个机器人的运动参考坐标系就建立在base_link上。输入与base_link相连的link的个数,下方会创建Empty_link,单击Empty_link对Empty_link进行设置,右键可以移除Empty_link或创建Child Link。根据机器人各连杆的运动关系建立连杆的父子关系树,并依次对每个link进行设置。

注意:

在点击Preview and Export之前,所有操作都不会保存。Link / Joint的名称可以由字母、下划线、数字组成,但是开头需要是英文字母

关节类型Joint Type说明:

  • continuous:旋转关节,可以绕轴无限旋转,无位置限制;
  • revolute:旋转关节,可设定转动范围;
  • prismatic:滑动关节,可以沿某一轴线移动,有位置限制;
  • fixed:固定关节,不可运动;
  • planar:平面关节,允许在垂直于轴的平面内运动(3自由度:平移+旋转),想在哪个平面内运动就将垂直于该平面的轴设置为1。
  • floating:六自由度关节,可以沿着三轴平移、旋转。

3、设置连杆和关节参数

单击 Preview and Export --> 进入参数配置界面,配置好后 --> Next

注意:

弹出Exporter对话框前不要做任何操作,等待转化完成。如果转化终止,重新打开urdf插件,并单击Preview and Export。

(1)关节参数设置

在关节参数配置对话框可以重新设置之前的一些参数,确定关节类型和关节轴是否正确(包括方向,右手定则)。

Limit参数:lower和upper是以模型的初始姿态作度量的,且在continuous模式下设置Limit参数是无效的。
lower:关节运动范围的下限
upper:关节运动范围的上限
effort:最大关节力/力矩
velocity:最大速度
转动关节单位为:rad、N/m、rad/s
移动关节单位为:m、N、m/s
Axis参数:插件会把某些轴定义成-1,如果自定义的坐标系没有问题的话,需要改成1,否则转动或移动的方向会与你定义的方向相反。

(2)连杆参数设置

Next --> 设置好连杆参数后 --> Export URDF and Meshes... --> 保存

注意:

1、保存时不要修改名称,采用默认的,不然会因为找不到文件保错。
2、urdf文件配置好后会随模型文件一起保存着,可以随时修改导出。
3、RGBA 即红色、绿色、蓝色、透明度(英语:Red, Green, Blue、Alpha)。
红色(R):取值0 到 1 之间,代表颜色中的红色成分。
绿色(G):取值0 到 1 之间,代表颜色中的绿色成分。
蓝色(B):取值0 到 1 之间,代表颜色中的蓝色成分。
透明度(A):取值 0~1 之间, 代表透明度。

4、验证URDF文件

Ubuntu18.04:在终端

直接在存放.urdf文件的文件夹右键打开终端或cd到存放.urdf文件的文件夹:cd /mnt/hgfs/虚拟机/PaddleRobotics-main/QuadrupedalRobots/ETGRL/MMF/BigCat/urdf

在终端输入命令:

安装插件:
sudo apt-get install liburdfdom-tools
sudo apt install graphviz
语法检查:
check_urdf BigCat.urdf
结构查看、图形化显示URDF模型:
urdf_to_graphiz BigCat.urdf  # 会生成.gv和.pdf文件,打开pdf文件

5、MATLAB可视化

robot=importrobot("RM65-B-3.urdf")
show(robot);

6、RVIZ可视化

安装roslaunch:sudo apt install python-roslaunch

在 launch 文件中集成 URDF 与 Rviz

用ubuntu默认的编辑器gedit创建一个launch文件:gedit panda5.launch

启动launch文件:roslaunch jubot_demo display_jubot_base_urdf.launch

roslaunch panda5 panda5.launch

启动rviz:rviz

一个urdf可视化网站:https://mymodelrobot.appspot.com/5629499534213120

?xml 这里是申明文件类型,这申明的是XML文件;version="1.0"定义XML文件类型的版本,encoding="UTF-8" 定义XML文件的语言编码。

<?xml version="1.0" encoding="utf-8"?>
<!-- This URDF was automatically created by SolidWorks to URDF Exporter! Originally created by Stephen Brawner (brawner@gmail.com)
     Commit Version: 1.6.0-4-g7f85cfe  Build Version: 1.6.7995.38578
     For more information, please see http://wiki.ros.org/sw_urdf_exporter -->

在最顶层“robot”元素中、“link”对象之外指定材质元素,然后在连杆中按名称引用材质。

<robot
  name="RM65-B-3">
  <link
    name="base_link">
    <inertial>
      <origin
        xyz="-3.32860491769144E-05 0.0605056293060711 -0.000429298636761367"
        rpy="0 0 0" />
      <mass
        value="0.847617283552053" />
      <inertia
        ixx="0.00174804822368135"
        ixy="1.68361305215697E-06"
        ixz="2.50097399709207E-06"
        iyy="0.000909998560984007"
        iyz="-3.68773281686804E-05"
        izz="0.00176435875694909" />
    </inertial>
    <visual>
      <origin
        xyz="0 0 0"
        rpy="0 0 0" />
      <geometry>
        <mesh
          filename="package://RM65-B-3/meshes/base_link.STL" />
      </geometry>
      <material
        name="">
        <color
          rgba="1 1 1 1" />
      </material>
    </visual>
    <collision>
      <origin
        xyz="0 0 0"
        rpy="0 0 0" />
      <geometry>
        <mesh
          filename="package://RM65-B-3/meshes/base_link.STL" />
      </geometry>
    </collision>
  </link>
  <link
    name="shoulder_3_1_link">
    <inertial>
      <origin
        xyz="-0.021048 0.06982 0.0015711"
        rpy="0 0 0" />
      <mass
        value="0.59292" />
      <inertia
        ixx="0.0011733"
        ixy="0.00020649"
        ixz="6.0734E-06"
        iyy="0.00056101"
        iyz="-1.5445E-05"
        izz="0.0012567" />
    </inertial>
    <visual>
      <origin
        xyz="0 0 0"
        rpy="0 0 0" />
      <geometry>
        <mesh
          filename="package://RM65-B-3/meshes/shoulder_3_1_link.STL" />
      </geometry>
      <material
        name="">
        <color
          rgba="1 1 1 1" />
      </material>
    </visual>
    <collision>
      <origin
        xyz="0 0 0"
        rpy="0 0 0" />
      <geometry>
        <mesh
          filename="package://RM65-B-3/meshes/shoulder_3_1_link.STL" />
      </geometry>
    </collision>
  </link>
  <joint
    name="shoulder_3_1_joint"
    type="revolute">
    <origin
      xyz="0 0.1455 0"
      rpy="0 0 0" />
    <parent
      link="base_link" />
    <child
      link="shoulder_3_1_link" />
    <axis
      xyz="0 -1 0" />
    <limit
      lower="-3.14"
      upper="3.14"
      effort="0"
      velocity="0" />
  </joint>
  <link
    name="shoulder_3_2_link">
    <inertial>
      <origin
        xyz="0.0021142 0.073057 -0.010762"
        rpy="0 0 0" />
      <mass
        value="0.45055" />
      <inertia
        ixx="0.0013248"
        ixy="0.00030275"
        ixz="-4.0729E-05"
        iyy="0.00034715"
        iyz="0.00012469"
        izz="0.0013513" />
    </inertial>
    <visual>
      <origin
        xyz="0 0 0"
        rpy="0 0 0" />
      <geometry>
        <mesh
          filename="package://RM65-B-3/meshes/shoulder_3_2_link.STL" />
      </geometry>
      <material
        name="">
        <color
          rgba="1 1 1 1" />
      </material>
    </visual>
    <collision>
      <origin
        xyz="0 0 0"
        rpy="0 0 0" />
      <geometry>
        <mesh
          filename="package://RM65-B-3/meshes/shoulder_3_2_link.STL" />
      </geometry>
    </collision>
  </link>
  <joint
    name="shoulder_3_2_joint"
    type="revolute">
    <origin
      xyz="0.0082134 0.094696 -0.00060499"
      rpy="0 0 0" />
    <parent
      link="shoulder_3_1_link" />
    <child
      link="shoulder_3_2_link" />
    <axis
      xyz="0.99725 0 -0.074088" />
    <limit
      lower="-2.26"
      upper="2.26"
      effort="0"
      velocity="0" />
  </joint>
  <link
    name="elbow_3_1_link">
    <inertial>
      <origin
        xyz="0.021592 0.067858 -0.010316"
        rpy="0 0 0" />
      <mass
        value="0.44998" />
      <inertia
        ixx="0.00080054"
        ixy="-0.00014403"
        ixz="2.2628E-05"
        iyy="0.0003489"
        iyz="7.9099E-05"
        izz="0.00085949" />
    </inertial>
    <visual>
      <origin
        xyz="0 0 0"
        rpy="0 0 0" />
      <geometry>
        <mesh
          filename="package://RM65-B-3/meshes/elbow_3_1_link.STL" />
      </geometry>
      <material
        name="">
        <color
          rgba="1 1 1 1" />
      </material>
    </visual>
    <collision>
      <origin
        xyz="0 0 0"
        rpy="0 0 0" />
      <geometry>
        <mesh
          filename="package://RM65-B-3/meshes/elbow_3_1_link.STL" />
      </geometry>
    </collision>
  </link>
  <joint
    name="elbow_3_1_joint"
    type="revolute">
    <origin
      xyz="-0.010208 0.15737 -0.021997"
      rpy="0 0 0" />
    <parent
      link="shoulder_3_2_link" />
    <child
      link="elbow_3_1_link" />
    <axis
      xyz="-0.010885 0.98976 -0.14229" />
    <limit
      lower="-2.35"
      upper="2.35"
      effort="0"
      velocity="0" />
  </joint>
  <link
    name="elbow_3_2_link">
    <inertial>
      <origin
        xyz="-0.0040394 0.058762 0.0093249"
        rpy="0 0 0" />
      <mass
        value="0.27546" />
      <inertia
        ixx="0.00055693"
        ixy="-0.00013414"
        ixz="-2.0423E-05"
        iyy="0.00015836"
        iyz="-6.2401E-05"
        izz="0.00057079" />
    </inertial>
    <visual>
      <origin
        xyz="0 0 0"
        rpy="0 0 0" />
      <geometry>
        <mesh
          filename="package://RM65-B-3/meshes/elbow_3_2_link.STL" />
      </geometry>
      <material
        name="">
        <color
          rgba="1 1 1 1" />
      </material>
    </visual>
    <collision>
      <origin
        xyz="0 0 0"
        rpy="0 0 0" />
      <geometry>
        <mesh
          filename="package://RM65-B-3/meshes/elbow_3_2_link.STL" />
      </geometry>
    </collision>
  </link>
  <joint
    name="elbow_3_2_joint"
    type="revolute">
    <origin
      xyz="-0.0075547 0.09573 -0.013549"
      rpy="0 0 0" />
    <parent
      link="elbow_3_1_link" />
    <child
      link="elbow_3_2_link" />
    <axis
      xyz="0.99959 0.0070053 -0.027737" />
    <limit
      lower="-3.14"
      upper="3.14"
      effort="0"
      velocity="0" />
  </joint>
  <link
    name="wrist_3_1_link">
    <inertial>
      <origin
        xyz="-0.01883 0.054906 0.0075269"
        rpy="0 0 0" />
      <mass
        value="0.23223" />
      <inertia
        ixx="0.00024711"
        ixy="4.2585E-05"
        ixz="5.4744E-06"
        iyy="0.00011652"
        iyz="-2.1292E-05"
        izz="0.00026486" />
    </inertial>
    <visual>
      <origin
        xyz="0 0 0"
        rpy="0 0 0" />
      <geometry>
        <mesh
          filename="package://RM65-B-3/meshes/wrist_3_1_link.STL" />
      </geometry>
      <material
        name="">
        <color
          rgba="1 1 1 1" />
      </material>
    </visual>
    <collision>
      <origin
        xyz="0 0 0"
        rpy="0 0 0" />
      <geometry>
        <mesh
          filename="package://RM65-B-3/meshes/wrist_3_1_link.STL" />
      </geometry>
    </collision>
  </link>
  <joint
    name="wrist_3_1_joint"
    type="revolute">
    <origin
      xyz="0.0064042 0.13143 0.020439"
      rpy="0 0 0" />
    <parent
      link="elbow_3_2_link" />
    <child
      link="wrist_3_1_link" />
    <axis
      xyz="-0.0026287 0.9879 0.15508" />
    <limit
      lower="-2.23"
      upper="2.23"
      effort="0"
      velocity="0" />
  </joint>
  <link
    name="wrist_3_2_link">
    <inertial>
      <origin
        xyz="-0.0010975 0.056649 0.019782"
        rpy="0 0 0" />
      <mass
        value="0.20572" />
      <inertia
        ixx="0.00028608"
        ixy="7.0133E-05"
        ixz="2.3408E-05"
        iyy="0.00012022"
        iyz="-6.0294E-05"
        izz="0.00028501" />
    </inertial>
    <visual>
      <origin
        xyz="0 0 0"
        rpy="0 0 0" />
      <geometry>
        <mesh
          filename="package://RM65-B-3/meshes/wrist_3_2_link.STL" />
      </geometry>
      <material
        name="">
        <color
          rgba="1 1 1 1" />
      </material>
    </visual>
    <collision>
      <origin
        xyz="0 0 0"
        rpy="0 0 0" />
      <geometry>
        <mesh
          filename="package://RM65-B-3/meshes/wrist_3_2_link.STL" />
      </geometry>
    </collision>
  </link>
  <joint
    name="wrist_3_2_joint"
    type="revolute">
    <origin
      xyz="0.006887 0.075529 0.012271"
      rpy="0 0 0" />
    <parent
      link="wrist_3_1_link" />
    <child
      link="wrist_3_2_link" />
    <axis
      xyz="-0.99833 0.0063528 -0.057393" />
    <limit
      lower="-6.28"
      upper="6.28"
      effort="0"
      velocity="0" />
  </joint>
</robot>

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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

数据类型扩展02

1、字符串拓展 所有的字符本质还是数字。 char c1 a;char c2 中;System.out.println("c1:"c1);System.out.println("c1转换:"(int)c1);System.out.println("c2:"c2);System.out.println("c2转换:"(int)c2); 执行结果 c1:a c1转换:…

【SpringBoot】通过profiles设置环境

效果图&#xff0c;通过profiles设置环境 在父级pom.xml中添加配置 <profiles><profile><id>dev</id><properties><application.environment>dev</application.environment></properties><activation><activeByDefau…

Javaweb实现数据库简单的增删改查

JDBC介绍 JDBC &#xff08; Java Data Base Connectivity &#xff09; 是一 种 Java 访问 数据库 的技术&#xff0c;它提供 执行 SQL 语句的 Java API &#xff0c;由 一组 类 和接口组成&#xff0c;可以为 不同的 数据库提供统一访问 JDBC工作原理 JDBC应用编程 1、准备…

SocketIo的使用和基于SocketIO的聊天室

Socket.IO 是一个库&#xff0c;可以在客户端和服务器之间实现 低延迟, 双向 和 基于事件的 通信。 一、Socket.IO的特点 以下是 Socket.IO 在普通 WebSockets 上提供的功能&#xff1a; 1、HTTP 长轮询回退 如果无法建立 WebSocket 连接&#xff0c;连接将回退到 HTTP 长轮…

随笔-事儿就这么个事儿

好久没写了&#xff0c;小A要催更&#xff0c;还答应让我写一下他的经历&#xff0c;这还有啥说的&#xff0c;开整。 1、升级 前段时间登录公司的办公系统处理一个事务申请&#xff0c;发现有个粗体标红的通知&#xff0c;是关于今年的晋升名单公示。进去看了一眼&#xff0…

姓氏情侣家庭亲子谐音顽梗头像分销流量主微信抖音小程序开发

姓氏情侣家庭亲子谐音顽梗头像分销流量主微信抖音小程序开发 姓氏情侣头像&#xff1a;提供各种姓氏的情侣头像模板&#xff0c;用户可根据自己的姓氏选择合适的头像进行定制。 家庭头像&#xff1a;为家庭成员提供多种形式的头像模板&#xff0c;让用户可以选择合适的家庭头像…

MAX/MSP SDK学习05:A_GIMME方法

今天终于将A_GIMME方法部分的描述看懂了&#xff0c;上周因为太赶时间加上这文档很抽象一直没看懂。也就那么一回事&#xff0c;记录一下。 A_GIMME方法用于接收多个参数&#xff1a; #include "ext.h" // standard Max include, always required #include "…

黑马React18: 基础Part II

黑马React: 基础2 Date: November 16, 2023 Sum: 受控表单绑定、获取DOM、组件通信、useEffect、Hook、优化B站评论 受控表单绑定 受控表单绑定 概念&#xff1a;使用React组件的状态&#xff08;useState&#xff09;控制表单的状态 准备一个React状态值 const [value, se…

安全领航,共筑敏捷开发新时代【云驻共创】

安全领航&#xff0c;共筑敏捷开发新时代。网络安全形势虽然严峻&#xff0c;但得益于企业安全意识的提升&#xff0c;近两年来遭受网络攻击的网站不断减少&#xff0c;普通网民的个人隐私及其他敏感数据得到了更多的保证。华为云基于自身多年的安全经验研发了可以帮助开发者实…

前端vite打包工具

文章目录 vite简介特点搭建步骤 vite简介特点 Vite是在推出Vue 3的时候开发的&#xff0c;目前仅支持Vue 3.x&#xff0c;这意味着与Vue 3不兼容的库也不能与Vite一起使用。持热更新&#xff0c;而且热更新的速度不会随着模块增多而变慢。在生产环境下使用Rollup打包。Vite 的…

湖科大计网:应用层

一、应用层概述 交互&#xff0c;实现特定问题&#xff01; 二、客户与服务器模型 一、C/S 客户/服务器方式 服务与被服务的关系。 二、P2P方式 对等方式 P2P方式是对等的&#xff0c;没有固定的服务器。 三、DNS域名系统 DNS&#xff08;Domain Name System&#xff09; 一、域…

CF 1894A 学习笔记 思维 题意理解分析

原题 A. Secret Sport time limit per test 3 seconds memory limit per test 512 megabytes input standard input output standard output Lets consider a game in which two players, A and B, participate. This game is characterized by two positive integer…

NSSCTF web刷题记录6

文章目录 [HZNUCTF 2023 final]eznode[MoeCTF 2021]地狱通讯-改[红明谷CTF 2022] Smarty Calculator方法一 CVE-2021-26120方法二 CVE-2021-29454方法三 写马蚁剑连接 [HZNUCTF 2023 final]eznode 考点&#xff1a;vm2沙箱逃逸、原型链污染 打开题目&#xff0c;提示找找源码 …

前端环境变量释义

视频教程 彻底搞懂前端环境变量使用和原理&#xff0c;超清楚_哔哩哔哩_bilibili 添加命令行参数 --modexxxxx 新建.env.xxxx文件,其中.env文件会在所有环境下生效 以VITE_开头&#xff0c;字符串无需加双引号 使用import.meta.env.VITE_xxxxx进行调用

全网最全jmeter接口测试/接口自动化测试看这篇文章就够了:跨线程组传递jmeter变量及cookie的处理

setUp线程组 setUp thread group&#xff1a; 一种特殊类型的线程组&#xff0c;用于在执行常规线程组之前执行一些必要的操作。 在 setup线程组下提到的线程行为与普通线程组完全相同。不同的是执行顺序--- 它会在普通线程组执行之前被触发&#xff1b; 应用场景举例&#xf…

UE4基础篇十六:自定义 EQS 生成器

UE4 中的 EQS 带有一组很好的查询项生成器,但在某些情况下,您可能更喜欢根据需要创建生成器。我决定编写自己的生成器,因为我必须编写一个查询来找到查询器周围的最佳位置,但又不能太靠近它。我知道我可以添加一个距离测试来随着距离增加分数,但我什至不想考虑距查询器一定…

FreeRTOS源码阅读笔记4--semphr.h

信号量是特殊的队列--无法存储消息的队列&#xff0c;相关的接口函数声明在semphr.h中&#xff0c;通过宏定义替换队列函数实现。 4.1创建二值信号量xSemaphoreCreateBinary() 4.1.1函数原型 queueQUEUE_TYPE_BINARY_SEMAPHORE&#xff1a;一个宏&#xff0c;表示创建队列的…

2024湖南师范大学计算机考研分析

24计算机考研|上岸指南 湖南师范大学 湖南师范大学创建于1938年&#xff0c;位于历史文化名城长沙&#xff0c;是国家“211工程”重点建设大学、国家“双一流”建设高校、教育部普通高等学校本科教学工作水平评估优秀高校。学校拥有6个“十二五”国家重点学科、21个博士学位授…

【Python爬虫】8大模块md文档集合从0到scrapy高手,第7篇:selenium 数据提取详解

本文主要学习一下关于爬虫的相关前置知识和一些理论性的知识&#xff0c;通过本文我们能够知道什么是爬虫&#xff0c;都有那些分类&#xff0c;爬虫能干什么等&#xff0c;同时还会站在爬虫的角度复习一下http协议。 爬虫全套笔记地址&#xff1a; 请移步这里 共 8 章&#x…

股票池(三)

3-股票池 文章目录 3-股票池一. 查询股票池支持的类型二. 查询目前股票池对应的股票信息三 查询股票池内距离今天类型最少/最多的股票数据四. 查询股票的池统计信息 一. 查询股票池支持的类型 接口描述: 接口地址:/StockApi/stockPool/listPoolType 请求方式&#xff1a;GET…