前端可观测性系统建设

一.  背景

随着前端业务的日趋庞大,及时发现和解决业务中的问题、优化用户体验、实时监控业务健康度变得愈发重要。在业务层面,我们希望能够监控每次发布版本后,核心功能是否有显著提升或至少没有负面影响,核心接口是否正常运作,页面跳失率是否有明显增加。而在技术层面,我们希望能够日常监控首屏加载时间,确保页面没有因为发布版本、运营配置、活动结束、库存不足等因素而出现错误。最后,我们还希望能够帮助业务方分析用户在前端页面的常规操作,如点击、交互、跳转等,以发现提升核心功能指标的突破口。

因此,一个能够观测业务的系统是不可或缺的。这个系统实现了数据埋点上报、看板自动搭建和数据监控的可观测性链路闭环,并具有以下重要作用:

  • 问题排查和故障修复:业务可观测性可以实时监控页面报错数量变化、报错位置等,方便快速定位问题并修复

  • 性能实时监控:业务可观测性可以通过监控前端业务的性能指标,如:首屏加载时间、核心接口请求时间,以及一些自定义生命周期消耗时间来了解用户在使用过程中的体验。通过这些指标,可以发现页面的性能瓶颈,并有针对性地优化,提升用户体验、增加用户黏性的同时,提升业务核心功能的转化率

  • 业务核心功能数据支持和决策参考:通过分析页面核心功能点的点击等,为业务决策提供支持、参考,如产品迭代、功能优化前后,核心功能指标是否有改善

  • 用户行为分析:通过分析用户在前端页面的常规操作,如点击、交互、跳转等行为进行分析,可视化地展现用户的使用习惯、偏好和需求,给业务决策提供支持。通过分析用户留存、页面跳失率等指标,给业务迭代提供参考

二. 设计实现

2.1 当前痛点

当前埋点和看板主要问题:

  • 不统一:团队内项目使用过的埋点脚本3,4种,不统一,不维护,上报的数据到不同的数据集难处理

  • 不处理:很多项目只埋点,不查看,问题全靠客服反馈

  • 可视化差:很多项目开发自己写sql或者依赖北极星,缺少项目之间对比和总体概览

  • 监控弱:不方便随时监控自己的项目状况

2.2 痛点解决

2.2.1 解决痛点不统一:统一埋点上报sdk

当前团队内埋点上报痛点包括:

  • 上报脚本种类多,可用性差:当前团队内使用了meta-report, log-report, live-web-track等多种上报脚本,不同的脚本使用中有差异。部分脚本已经停止迭代或者很少迭代了

  • 上报到不同的位置:即使使用同一个上报脚本,也有上报到不同的数据表的情况,导致对数据的统一处理、数据看板的建设都很难维护

  • 脚本能力欠缺:对于一些大多数业务都用得上的通用数据上报,很多脚本能力欠缺,需要业务方自己去写复杂的代码上报监控,门槛较高

为了解决这些问题,我们的团队计划开发一个基于live-web-track的埋点公共包。这个公共包的目标是统一上报脚本和数据表位置,并提供一系列通用的数据上报功能,如无交互跳出、页面停留时长等上报功能。通过这个公共包,我们希望能够统一埋点数据上报方式,供统一的数据看板消费,实现业务的可观测性。这样一来,我们可以更好地监控和分析业务数据,为业务决策和增长提供更可靠的支持。

埋点公共包分为两部分。首先是埋点核心组件,基于live-web-track,提供了初始化项目基本参数、无交互跳出上报、页面停留时间等能力。同时,还提供了自定义埋点上报和曝光点击的指令上报等方法,以供业务方使用。其次是常用组件,可根据需要进行接入。其中包括图片组件和HTTP请求组件。图片组件会自动对图片进行压缩、转换为WebP格式,并进行懒加载等常规优化。同时,它还会拦截图片加载失败的情况,并自动上报错误埋点,供错误监控平台进行监测。HTTP请求组件会拦截请求,根据传入的标记tag来判断接口是否为核心接口,并上报核心接口的请求次数。同时,它还会拦截接口请求成功和失败的情况,并上报成功次数和请求消耗的时间。对于错误请求,它会自动上报到错误监控平台。

sdk设计如下图:

图片

2.2.2 解决痛点不处理:自动创建业务核心大盘、健康度大盘

通过引入这个埋点公共包,我们将能够提供统一的上报脚本和数据表位置,同时提供通用的数据上报功能,帮助业务方解决不处理的问题。上报的数据会自动创建看板,业务方无需手动操作,就可以看到核心数据看板、健康度看板等。

2.2.3 解决痛点可视化差:统一看板

当前业务监控数据主要有两种方式:

  1. 在观远平台通过自行编写SQL语句进行数据查询和建立看板。

  2. 使用北极星平台进行数据可视化和看板搭建。

然而,观远方式存在一些痛点需要解决:

  • 学习门槛较高:编写复杂的SQL查询语句对于不熟悉sql语句的人员来说是个挑战。

  • 实时性差:数据查询需要耗费时间,业务方可能无法及时获取最新的数据,难以满足日常监测需求。

  • 默认看板效果局限:观远提供的默认图表样式和统计方式有一定限制,对于复杂的数据分析和看板搭建需要具备一定的技术能力。

另一方面,北极星平台虽然不需要编写SQL语句,易于上手,但也存在一些痛点:

  • 不支持部分常用公式:例如H5端的平均数、P90等计算方式,以及常规的四则运算也有一定限制。

  • 看板效果局限:对于单一埋点的监控,北极星平台表现良好。然而,对于普遍指标的对比分析,业务方需要自己搭建专属看板,导致不同业务之间出现重复工作的情况。

因此,为了满足业务的日常监控需求,我们计划在观远测中建立统一维护的业务可观测性看板。这样一来,可以解决上述问题,降低技术门槛,提高数据查询的实时性,并提供更灵活、专业的数据可视化和统计分析功能,帮助业务方更好地理解和优化业务,实现数据驱动的决策和增长。

图片

如图所示,整体架构主要分为4个部分,它们各自扮演着重要的角色:

  • 健康度大盘:这个部分负责评估业务的健康状况。通过核心转化率、页面跳失率、FMP(首次有意义绘制时间)、JS异常率、核心接口成功率以及核心接口耗时等6个维度,对页面的整体健康度进行评估和统计。通过对这些关键指标的平均值计算,可以快速了解业务的整体健康状态。

  • 业务核心大盘:这个部分主要分为通用看板和自定义指标看板。通用看板涵盖了所有业务都需要关注的核心指标,包括核心接口成功率、核心接口请求耗时、JS异常、UV/PV、FMP 90分位、页面无交互跳出率、页面停留时长以及核心功能转化率等。而自定义看板则允许业务方根据自身需求,额外关注一些埋点指标,从而深入了解业务的特定指标。

  • 错误监控平台:这个部分建立在观远的ARM上报平台之上。它能够收集业务自动上报的资源报错、JS报错和未捕获报错,以及业务主动上报的自定义报错。这样可以实时监控和分析业务中出现的错误,帮助及时发现和解决问题,提升系统的稳定性和用户体验。

  • 可视化看板:这个部分主要将用户行为进行分析,并进行可视化展示。通过对用户的点击、交互、留存、跳转等行为进行分析,可以更好地了解用户的行为模式和趋势。例如,通过点击热力图可以看到用户在页面上的热门点击区域;通过流量链路桑基图可以了解用户在不同页面之间的跳转路径;通过留存分析看板可以追踪用户的留存情况。这些可视化分析结果可以帮助业务方做出更加明智的决策,优化业务流程,实现数据驱动的增长。

建立统一维护的可观测性看板,不仅可以满足业务的日常监控需求,还提供更灵活、专业的数据可视化和统计分析功能,帮助业务方解决数据可视化差的痛点,帮助业务方优化业务和实现数据驱动的决策和增长。

2.2.4 解决痛点监控弱:接入dejavu平台,发版前后监控项目健康状况

将健康度、可视化看板等接入dejavu,与dejavu的能力共建,实时关注项目健康状况

图片

三. 落地成果

3.1 可观性系统统一

目前已经推广使用的业务做到了三个统一:

  1. 统一埋点上报方式

  2. 统一埋点上报数据集

  3. 统一数据看板

3.2 广泛推广

前端可观测性建设在建设初期就引起了各个业务的特别关注,已经成功接入埋点sdk并上线了140个页面,主要功能有:

  1. 常规埋点系统统一:我们已经有140个页面使用我们的埋点公共包进行埋点上报,并通过业务数据大盘看板监测页面的核心指标以及自定义指标的观测。

  2. 页面健康度检测:目前有81个页面接入了页面健康度大盘。截至2023年结束,所有业务的整体健康度平均分达到了87分,其中80分以上的页面占比达到了56%。

  3. 可视化看板接入:其他可视化看板各个业务已经开始逐步接入。其中热力图看板在2023年已经应用于创作中心的任务中心等业务,并受到了合作方的高度赞扬。目前热力图看板已经推广到了其他团队业务。

  4. 核心业务治理:创作灵感页面首屏时间降低33.3%,前端异常率降低了 12PP,页面跳失率降低了 4.03PP,核心转化率提高了 2.03PP,创作中心荣誉周报前端异常率降低了 2.27PP,页面跳失率降低了 8.61PP,核心转化率提高了 0.72PP,Web投稿异常治理,解决了8个异常问题,优化了2个网络延迟场景下影响用户投稿体验的问题等

3.3 共建

2023年年底与前端基础技术组共建,将可视化看板热力图、健康度等接入dejavu平台,将接入的业务方进一步扩大的同时,让业务方可以在发版前后监控项目健康状况。

3.4 专利申请

申请号:CN202311033775.4

四. 看板设计

可视化看板设计是可观测性系统中十分重要的部分。可视化看板不仅可以展示项目核心数据(PV、UV、FMP等)、健康度状况、核心错误看板,还可以用于对用户行为进行深入分析和可视化展示。它能够帮助我们了解用户的点击、交互、留存、跳转等行为,并将这些行为以直观的方式呈现出来。

  1. 业务核心看板分为通用看板和自定义指标看板,不仅可以反馈所有业务都在关注的数据指标,还可以允许业务方根据自己的需求设置额外关注的埋点指标

  2. 健康度大盘可以一览所有业务的健康度状况,也可以查看单一业务健康度的明细以及不健康的原因和改进建议

  3. 监控错误看板可以实时查询业务的js报错、资源报错的等信息,帮助业务第一时间定位问题并做出修改

  4. 点击热力图能够展示用户在页面上的点击热度分布,通过不同颜色的热点来表示点击的频率和位置。这有助于我们识别用户感兴趣的区域和热门功能,从而优化页面设计和用户体验

  5. 流量链路桑基图则展示了用户在网站或应用内的流程路径,以及每个路径上的转化率和转化数量。通过这个图表,我们可以清晰地了解用户从入口到目标页面的转化过程,找到潜在的流失点,并优化用户转化率

  6. 留存分析看板则用于跟踪用户的留存情况,即用户在不同时间段内的持续使用情况。通过这个看板,我们可以直观地了解用户的留存率和用户群的活跃度,从而为产品运营和推广提供数据支持和决策依据。

  7. 通过以上可视化看板,我们能够更好地理解用户行为、优化产品设计和用户体验,并实现数据驱动的决策和增长。

4.1 业务核心大盘

我们的业务核心大盘分为两个部分:通用看板和自定义指标看板。通用看板包括一些所有业务都需要关注的核心指标,如核心接口的成功率、核心接口请求的耗时、JavaScript异常、用户访问量和页面加载的90分位时间、页面的无交互跳出率、用户在页面停留的时长以及核心功能的转化率等。这些指标能够全面反映业务的关键性能和用户行为情况。而自定义看板则允许业务方根据自己的需求设置额外关注的埋点指标。可以通过JSON配置来定义每个页面所展示的埋点数据和计算公式。这样,业务方可以根据自身情况定制化展示所需的埋点指标。

在业务核心大盘中,我们还提供了筛选功能,可以根据页面分组、页面名称和时间段来进行数据的筛选和查看。

4.2 健康度大盘

通用健康度大盘看板,一览所有业务实时健康度汇总

健康度大盘由六个维度组成

核心转化率:业务定义的核心转化行为次数 / 页面UV(0分与100分基准为各业务线自定义配置)

页面跳失率:用户进入页面后无任何交互退出的次数 / 页面UV(0分与100分基准为各业务线自定义配置)

FMP-P90:首屏加载时长 P90 分位毫秒数 (0分=2500, 100分=500)

JS异常率:JS 全局异常上报次数 / 页面PV (0分=0.01, 100分=0)

核心接口成功率:业务定义的核心接口请求成功(httpcode=200)次数 / 请求总次数 (0分=0.97, 100分=1)

核心接口耗时-P90:业务定义的核心接口请求耗时 P90 分位毫秒数 (0分=1000, 100分=300)

在选取了几个业务接入并观测接入后的数据,给FMP-P90、JS异常率、核心接口成功率、核心接口耗时-P90这5个指标内置了通用公式,这个公式是通过几个特点的点,拟合了一条近似曲线。业务方也可以通过json配置的方式微调公式,来满足业务的差异性。核心转化率、页面跳失率这两项指标在不同页面之间基准相差较大,需要手动设置基准以保证数据相对准确。以页面跳失率为例,微调公式的方法,和产品商议得分80分的页面跳失率和得分为60分的页面跳失率,求出公式中的a和b,进而得出微调后的公式。

健康度公式如下:

图片

4.3 错误监控看板

在错误监控方面,我们将继续使用现有的ARM平台监控系统。该系统支持查看错误的关键信息,包括MID(用户设备标识)、页面URL、BUVID(用户访问标识)、错误类型、错误信息以及堆栈信息等。通过这些关键信息的展示和分析,我们能够更准确地定位和解决错误,并提供优化业务的决策依据。

4.4 热力图看板

热力图看板是为了解决观测页面各个模块点击状态的痛点而设计的一种解决方案。它可以直观可视化地展示页面上各个模块的点击热度情况。除此之外,热力图看板还提供了一系列功能,包括观测一段时间内的热力变化、导出热力图数据、导出热力变化视频、进行页面AB实验分析以及进行模块热力环比分析等。

通过使用JSON配置页面背景图和点击模块的位置,接入热力图看板变得非常便捷。这使得业务方能够快速集成该功能,并获得对业务迭代的数据支持和参考。热力图看板的强大功能和简便的接入方式,将帮助业务方更好地了解用户在页面上的点击行为,优化页面布局和功能设计,并实现数据驱动的业务迭代和增长。

4.5 流量链路桑基图看板

随着页面复杂度提升,每个页面的来源和去向越来越多。为了关注用户体验和转化率、更好地了解用户在页面之间的流量路径和转化情况,采用流量链路桑基图进行数据分析和优化会事半功倍。量链路桑基图将用户的访问路径和转化行为以图形形式展示,直观地了解用户在整个流程中的行为和转化过程。

桑基图 (Sankey Diagram),是一种特定类型的流图,用于描述一组值到另一组值的流向。上图为1869年,查尔斯米纳德(Charles Minard)绘制的1812年拿破仑征俄图(Map of Napolean's Russian Campaign of 1812),这是一个在地图上覆盖桑基图的流程图。1898年爱尔兰人Matthew Henry Phineas Riall Sankey 在土木工程师学会会报纪要的一篇关于蒸汽机能源效率的文章中首次推出了第一个能量流动图,此后便以其名字命名为 Sankey 图,中文音译为桑基图。

图中延伸的分支的宽度对应数据流量的大小。桑基图的特点如下:

  • 起始流量和结束流量相同,所有主支宽度的总和与所有分出去的分支宽度总和相等,保持能量的平衡;

  • 在内部,不同的线条代表了不同的流量分流情况,它的宽度成比例地显示此分支占有的流量;

  • 节点不同的宽度代表了特定状态下的流量大小。

桑基图通常应用于能源、材料成分、金融等数据的可视化分析[1]。

通过流量链路桑基图可以清晰看出页面流量的留存和流失,找到转化率难以提升的问题所在和瓶颈,并加以针对性的优化和改进,实现业务增长和留存。它有如下几点优势:

  • 可视化展示:流量链路桑基图以图形的方式展示用户流量路径和转化情况,直观易懂。通过不同颜色和宽度的连线来表示用户的转化情况,使得数据更加具有可读性和可理解性。

  • 简洁明了:流量链路桑基图将复杂的用户流量路径和转化过程简化为直观的图形展示,使得数据分析更加简洁明了。通过查看桑基图,可以一目了然地了解用户的流量分布和转化情况,快速找出瓶颈和问题所在。

  • 快速发现问题:通过流量链路桑基图,可以快速发现用户在流程中的流失点和转化率低的环节。在这些环节上,业务侧可以重点优化,改善用户体验,提高转化率。

  • 数据驱动决策:流量链路桑基图提供了直观的数据支持,可以为业务侧的决策提供指导。通过对用户流量路径和转化情况的分析,业务侧可以制定相应的策略和措施,优化产品设计和运营活动,提升业务效果和转化率。

4.6 留存看板

目前页面的核心指标看板缺失留存看板,不方便看增长类、留存类业务的指标

留存,是指用户在起始(新增或使用产品)之后一段时间再次回到产品。
留存率,是指再次回到产品的用户数量与初始用户数量的比率。

  • 用户在新增或使用产品后当日回到产品的比率,计为 当日留存率

  • 用户在新增或使用产品后第2天回到产品的比率,计为 次日留存率

  • 用户在新增或使用产品后第3天回到产品的比率,计为 3日留存率

  • 用户在新增或使用产品后第7天回到产品的比率,计为 7日留存率

  • 用户在新增或使用产品后第8~14天回到产品的比率,计为 次周留存率

  • 用户在新增或使用产品后第n周内回到产品的比率,计为 n周留存率

说明

这里的周是指7天,而非自然周。

用户留存率,是产品和运营努力提升的重要指标之一。因此,在产品升级、运营活动之后,往往需要对升级或活动所影响用户群体的留存率进行监控分析。

新用户留存以「用户新增」作为留存起始条件进行计算。

即:如果昨日新增的100个用户,其中50人在今日再次回到产品,则昨日的新用户次日留存率为50%。
新用户留存是最为常用的留存计算方式。在大多数情况下,如果没有特殊说明,「留存=新用户留存」。

活跃用户留存以「用户活跃」作为留存起始条件进行计算。

即:如果昨日活跃的100个用户,其中50人在今日再次回到产品,则昨日的活跃用户次日留存率为50%。

目前页面的核心指标看板缺失留存

单独看板,单选业务,不支持日期选择,页面参考

4.7 用户旅程

关注用户旅程,深度了解单个用户体验成为了提升用户满意度和留存率的关键,可以帮助开发更有效地排查线上不容易复现的问题。

为此,我们开发了前端单个用户旅程监控的系统建设。

整体架构设计:

图片

五.未来规划

前端可观测性系统目前已经实现了从埋点上报到数据看板的功能闭环,经过了半年的开发、接入和推广,已经完成了基本能力的建设并已经在业务中落地。但是对于业务数据下钻分析能力、对业务迭代的指导作用还有待提升,具体有如下几方面的规划:

完善业务数据大盘中自定义埋点的公式,支持更多常见公式的计算和自定义公式的计算

增加企微告警能力,对于报错信息增加、健康度下降的项目,自动给项目负责人发送消息

增加更多对业务侧有指导意义的可视化看板,目前留存看板、热力图看板、桑基图对产品侧帮助很大,未来支持更多类型的看板,帮助产品自动分析数据变化原因并智能提供迭代建议

与bili-mirror、dejavu等继续共建,给业务方提供更多的帮助

六.参考文献

【1】ANTV桑基图.https://antv-2018.alipay.com/zh-cn/vis/chart/sankey.html

-End-

作者丨晨松

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

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

相关文章

鸿蒙原生App开发之:套用混合app开发思路

2024年,似乎华为迎来了新的企业机遇--鸿蒙独立操作系统。 受到全球国际形势的影响,加之第四次科技革命(AI革命)冷不丁的出现,在他国AI技术领先的前提下,中国自主研发的独立操作系统再次提上新的战略高度。…

网站的用户留言信息有什么意义

用户在网站上面留言一般都是因为反馈问题或者有什么需求,网站可以通过收集这些用户的留言更够够好的不断优化网站服务用户需求,也可以通过这种方式加强平台与用户的友好关系,有些好心的用户突然发现网站有什么问题,发现哪里不对了…

机器阅读理解技术在电网检修问答系统中的应用与创新

在当今快速发展的人工智能领域,机器阅读理解技术正逐渐成为提升行业工作效率的关键因素。本文将探讨思通数科大模型中的检修问答系统,这一系统通过先进的机器阅读理解技术,优化了电网维修工作的流程和效率。 一、机器阅读理解技术概述 机器…

UDS诊断、ECU刷写、OTA升级、Tbox测试、CANoe实操

每天的直播时间: 周一至周五:20:00-23:00 周六与周日:9:00-12:00,14:00-17:00 TBOX 深圳 涉及过T-BOX测试吗Ota升级涉及的台架环境是什么样的?上…

2024年退休金上调3%后一个扎心的现实。。。

个人原创,手写码字1050 你好,我是郭震 今天正式宣布,退休养老金上调3%: 1 现状分析 我对此做一些分析,从数据中帮助老铁们看清一些事实。 根据去年数据,农村老人1.2亿: 去年数据显示&#xff0c…

扭蛋机小程序:深度探索虚拟寻宝之旅的乐趣

引言 扭蛋机小程序,这个融合了传统与创新的虚拟寻宝乐园,已经吸引了无数玩家的目光。在这个充满惊喜和挑战的虚拟世界里,每一个扭蛋都可能蕴藏着无尽的宝藏。本文将带您深入探索扭蛋机小程序的魅力所在,体验一场别开生面的虚拟寻…

端开发技术——Flutter富文本组件

简介 flutter 富文本组件。 github地址: https://github.com/ThinkerJack/jac_uikit 使用方式 运行 flutter pub add jac_uikit组件文档 使用方式: HighlightedTextWidget.builder(text: "全部文案包含高亮文案测试用",highlights: [Hig…

企业常用的五大源代码加密软件

安秉源代码加密软件: 专注于源代码文件的加密,对编译后的文件不加密。 采用版本管理服务器密文保存方式,不影响员工正常开发流程。 有效防止代码从版本管理服务器下载和上传到私有仓库。 适用于企业环境,保护源代码不被泄露。EXEC…

【机器学习】CART决策树算法的核心思想及其大数据时代银行贷款参考案例——机器认知外界的重要算法

目录 引言 概述 CART决策树的特点 核心思想 减少不确定性的指标 基尼系数(Gini Index) 分类错误率 熵 银行实例 背景 数据准备 模型构建 模型评估与优化 应用与结果 代码示例 ✈✈✈✈引言✈✈✈✈ CART算法既可以用于分类问题&#xff0…

攻防演练“轻装上阵” | 亚信安全信舱ForCloud 打造全栈防护新策略

网络世界攻防实战中,攻击风险已经从代码到云横跨全栈技术点,你准备好了吗 云服务器,攻击众矢之的 2022年超过38万个Kubernetes API服务器暴露公网,成为攻击者目标。云服务器,尤其是开源设施,一直以来不仅是…

Android可穿戴设备世界之旅

人不走空 🌈个人主页:人不走空 💖系列专栏:算法专题 ⏰诗词歌赋:斯是陋室,惟吾德馨 介绍 Android通过在电视、穿戴和汽车等各种电子模块中扩展下一代应用开发概念,扩展了其整个范围和可…

vue大作业-实现学校官网

vue大作业-实现学校官网 基于vue2实现的学校官网 项目展示 学校官网介绍 欢迎访问我们学校的官方网站,这里为您提供了全面的信息和资源,帮助您更好地了解我们的教育理念、教学资源和学术活动。 首页 首页是您了解我们学校的起点。这里展示了学校的最…

k8s删除状态为 Terminating 的pod

卸载calico pod时候pod资源状态会卡在terminating,这时候需要手动进行删除 使用以下命令即可 kubectl delete pod podName -n NAMESPACE --force --grace-period0记住一定要加命名空间,不然会报错没有找到

《Windows API每日一练》4.5 GDI映射模式

上一节讲述设置绘图模式时,包括设置背景模式、混合模式,还有一个就是映射模式。本节我们将详细讲述映射模式。 本节必须掌握的知识点: 设备坐标和逻辑坐标 视口和窗口 MM_TEXT映射模式 度量映射模式 自定义映射模式 第27练:GDI映…

无代码爬虫软件八爪鱼采集器-如何设计判断是、否

多数情况下免费版本的功能,已经可以满足绝大多数采集需求,想了解八爪鱼采集器,我写了一套系列教程,请访问这篇帖子:【完结】无代码网页爬虫软件——八爪鱼采集器入门基础教程-CSDN博客 免费版八爪鱼采集器下载https:/…

【数据结构】第十七弹---C语言实现选择排序

✨个人主页: 熬夜学编程的小林 💗系列专栏: 【C语言详解】 【数据结构详解】【C详解】 目录 1、选择排序 1.1、基本思想 1.2、代码实现 1.3、代码测试 1.4、时空复杂度分析 总结 1、选择排序 1.1、基本思想 选择排序是一种简单直观的比…

幂集(C++)

终其一生,你在追求什么? ——2024年6月16日11:56 题目描述 给定正整数n(n≥1),给出求{1~n}的幂集,例如,n3时,{1,2,3}对应的幂集合为{{}&#xff…

FlowUs项目经理初体验

作为一名项目经理,FlowUs可以作为一个强大的工具来帮助我管理项目的所有方面,从规划到执行再到监控和回顾。 FlowUs息流是什么?FlowUs息流是一款集文档、多维表、文件夹等功能于一体的新一代知识管理与协作平台 以下是一些使用FlowUs作为项…

streamlit markdown里支持latex公式显示

参考: https://docs.streamlit.io/develop/api-reference/write-magic/st.write https://discuss.streamlit.io/t/streamlit-markdown-a-streaming-markdown-component-with-latex-mermaid-table-code-support/72187 也有独立支持的st.latex 接口单独显示公司&…

AI绘画Stable Diffusion 保姆级教程,让AI人物轻松打光的种方法,我不允许你还不会!

大家好,我是画画的小强 我们常常听到这样的观点:光影,如同摄影的精髓,为图像赋予难以抗拒的质感和情感深度。 用AI生成的图片为什么总是觉得比较“假”,主要还是光影不足! 今天我将一一解析多种光影调控…