粉丝1.5万获赞5.5万

大家好,欢迎回到我的频道,今天咱们来聊一个你每天都在用,但可能完全没感觉到的技术,可以说是你手机里那些信息流能够无限往下刷的幕后大工程。 你刷手机的时候,那些社交媒体上的新内容是怎么做到源源不断那么顺滑的冒出来的?这背后可不是什么魔法,而是一种特别聪明的技术,咱们马上就来揭开它的神秘面纱。 一、什么是 api 分 页?好的谜底揭晓这个技术呢,有个听起来挺专业的,名叫 api 分 页 penguin nation, 说白了,他的想法特别简单,你想啊,服务器要是一口气把成千上万条帖子都扔给你,那你的手机还不卡死? 所以啊,他就很聪明地把这些数据切成一小块一小块的,比如一次给你十条或者一百条。这样一来,服务器压力小了,你的流量也省了,最关键的是, app 用起来那叫一个顺滑。 那么问题来了,工程师们到底是怎么把这个分页给做出来的呢?咱们先来看看一个最容易想到的办法。二、传统方案,基于偏移量的分页 offset based 这是一个虽然简单,但坑也挺多的方案。 这个方法呢,叫基于偏移量的分页,听名字有点绕,其实就是用两个参数 offset 就是 偏移量,意思是跳过多少条 limit, 就是 要获取多少条。他跟数据库沟通的方式就特别直接,就像你跟他说,哎,老兄,前面那五十条我不要了, 你跳过去,然后从第五十一条开始,给我来十条。你一听就明白,这法子最大的好处就是简单粗暴,逻辑特别清楚,写代码也快。 所以呀,好多程序员刚开始都爱用这个,但是凡事就怕这个。但是一旦你的数据量变得特别大,而且还变得特别快,你想想社交媒体上的帖子,那更新速度, 这个简单的方法就顶不住了。它有两个非常要命的缺点。第一个问题,性能 performance。 你想想,你要看第一百页的内容,就得跟数据库说,跳过前面九百九十条。可数据库 他不聪明啊,他得老老实实的从第一条开始数,一直数到第九百九十条,然后再给你后面的。这要是让你跳过一百万条呢?那数据库可就累趴了,你的 app 也就卡住了。第二个问题,更头疼, 数据不一致, data inconsistency。 在 你刷手机的这一秒钟,可能你朋友又发了好几条新动态,你刚看完第一页,准备到第二页,结果新的内容插进来了,整个队伍 都往后挪了。这么一来,你可能就会漏掉几条帖子,或者更烦的是刷到刚刚看过的内容重复数据,这就很影响体验了,对吧?三、进阶方案,基于油标的分页 cursor space 所以 啊,为了解决这些麻烦,工程师们就想出了一个更高级也更优雅的办法,咱们可以给它起个外号,叫它是书签法。 这个方法的学名呢,叫做基于邮标的分页 cursor based penation。 这里的邮标,你就可以把它想象成一个真正的书签。他不再跟数据库说你给我挑过多少条,而是直接告诉他, 你看,我上次读到这个书签这儿了,现在你从这个书签的下一页开始给我看就行, 这个书签是独一无二的,绝对不会搞错位置,整个过程就变得特别丝滑了。你的手机客户端每次跟服务器要新内容的时候,都会带上自己手里的那个书签。服务器一看到这个书签 哦,他就立马知道该从哪开始找了,完全不用从头数数。找到新内容之后呢,他会把这些内容连同一个新书签,也就是这一批内容里最后一个帖子的位置,一起发回给你, 你下次要内容的时候再用这个新的书签就行了。这么一来一回,数据就保证了不多也不少,非常准确。 那这个书签到底是个啥呢?其实很简单,它通常就是每条帖子的一个独一无二的编号,也就是 id, 或者呢,也可以是帖子的发布时间,也就是时间戳 times, 不 管用哪个目的都是一样的,确保这个书签是稳定而且唯一的,这样服务器才不会找错地方。四、巅峰对决,谁是王者? 好了,现在咱们两种方法都看过了,一个是简单粗暴的跳术法 cursor, 那 么是时候 让它俩正面 pk 一下了,看看谁才是真正的王者。这个结果可以说是毫无悬念了。性能上,书签法不管数据有多少,速度都嗖嗖的,一直很快。 而那个跳述法呢,数据一多,页数一深,就慢的像蜗牛。一致性上,书签法非常靠谱,保证你看到的数据不多也不少, 跳书法呢,就可能会丢三落四,或者给你看重复的。当然了,天底下没有完美的事,书签法写起来确实要比跳书法麻烦一点,但是为了我们能刷的爽,这点复杂性绝对是值得的 总结。所以咱们今天这个小课堂的核心结论是什么呢?一句话总结,只要你处理的是那种又大又变飞快的数据集, 比如社交媒体信息流,那就别犹豫,直接用书签法,也就是基于邮标的方法,它带来的那种稳定和快速的体验,绝对能让你忘了那一点点代码上的复杂。 其实啊,像 api、 分 页这样的技术,在咱们的数字生活里还有很多,他们就像是幕后的英雄,默默的工作,保证了我们每天的体验。那么你有没有想过,在你每次滑动屏幕点赞的时候, 背后还有哪些我们看不见但又特别巧妙的设计在起作用呢?这个问题我觉得特别值得我们保持好奇心去探索。 好了,今天就聊到这里,如果你觉得这个视频还有点意思,欢迎在评论区发表你的看法,如果你从这个视频学到了新东西,请点赞、关注、收藏并转发给需要的人,谢谢!

哎,你是不是也遇到过这种情况,明明就是想快速测一下 api 或者下载个小文件,结果呢,非得打开一个又大又慢的图形界面工具。说真的,有时候这种工具真的太拖节奏了。 如果你也有这种烦恼,那 curl 简直就是为你量身定做的,你可以把它想象成一把互联网世界的瑞士军刀,小巧锋利,而且功能强大到超乎你的想象。 好,那咱们就来具体看看。 curl, 它的全称是 client for url, 顾名思义,就是面向网址的客户端。这名字其实已经把它的核心任务说清楚了,就是作为一个客户端去和任何 url 地址进行数据交互。 它就是这么一个纯粹的命令行工具,只专注做一件事儿,传输数据。那么这把瑞士军刀到底有多全能呢?你看啊,最基本的上市发一个 getpost 请求下载文件,那都是小菜一碟, 复杂点儿的,比如测试和调试 a p i, 在 搅拌里搞自动化,它也完全没问题。甚至它还能处理像自定义请求头、 cookie 和身份验证这些麻烦事儿。而且啊,它支持的协议特别多,所以不管是在开发还是微印工作里,它都是一个绝对少不了的离器。 行,那咱们就先从它最基础也是大家最常用的功能说起,就是从一个网址上获取数据,或者说下载东西。 这里有三种最核心的下载方式,特别简单,如果你只是想快速看一眼网页的源码长啥样,直接 call 后面跟上网址就行了,内容会直接打在屏幕上, 那要是想把内容存下来呢?也好办,用小写的杠 o 参数,你就能自己给文件起个名字。还有一个更用,用的是大写的杠 o, 它会自动用网址里原来的文件名来保存。这在下载图片呐,安装包啊这些东西的时候就特别方便。 不过呢,你用着用着可能就会碰到一个问题,现在很多网站,特别是那种短链接,都会用重定向技术,就是把你跳到另一个地址去, 但可默认情况下,可不会自己跟着跳哦。解决办法简单得很,只要加上一个杠 l 参数就行了。这下就等于告诉克尔,哎,哥们,要是服务器让你去别的地方,你就跟着去,别犹豫。 说真的,在现在的网络环境里,这个菜数基本上是必加的了。好的,刚才说的下菜,那都只是开胃小菜,接下来的才是重头戏。咱们来看看 karl 是 怎么发挥它真正的威力,也就是和 api 对 话。 跟 api 打交道呢,我们最常用的方法就是 get 和 post。 你 可以这么理解, get 呢,就好比是跟四服务器说,欸,能把那个数据给我吗?你是去要东西的。而 post 呢,就是跟四服务器说,欸,这是给您的数据,你收一下,你是去送东西的。 call 默认就是用 get, 不 过要让它发一个 pose, 请求也同样非常简单。咱们来玩个搭积木的游戏,一步一步拼出一个完整的 api 请求。第一步也是最基础的一块积木,当然就是目标地址了。我们先把 call 命令和 api 的 网址给放上去 好,第一块积木放好了,现在是第二块,我们得明确告诉服务器,咱们想干嘛, 加上一个杠 x post 参数。这就好比给咱们的请求贴了个大大的标签,上面写着 post, 让服务器一眼就知道我们的意图。 ok, 现在地址有了,方法也有了,但是服务器还不知道咱们要送的这包货到底是什么类型的。 所以这第三块积木就来了,请求投,我们用杠 h 参数告诉服务器 content type 是 application json。 这就等于是在说,注意啦,我接下来要给你的是 json 格式的数据哦。 最后,也是最关键的一块积木,就是咱们要发送的数据本身,用 dd 参数把咱们的 json 数据包给它放进去,你看齐活了,一个完整规范的 jsonpos 请求就这么打好了,是不是特别有条理? 当然了,在现实世界里,网络通信不总那么顺利,万一请求失败了,我们心里肯定会想,到底哪儿出错了。这种时候, curl 自带的调试工具就派上大用场了。 排查问题的第一招就是让 curl 变得啰嗦一点,你只要加上一个杠微参数,它就会把整个通信过程的来龙去脉全都给你打印出来。 想看懂这些?睿智很简单,你只要记住,大于号 v 开头的是你发出去的东西,小于号 k 开头的是服务器回复给你的,而星号 s 开头的是一些连接的额外信息。 有了这个,你就等于有了 x 公式,也能把整个过程看得清清楚楚。其实 curl 给你准备了好几种不同级别的放大镜, v 呢,就适合绝大部分的日常调试。如果你只是想把响应头和响应内容一起看,那用 i 就 更方便。可要是真遇到什么疑难杂症,需要进行最底层的分析,想看看每一个字节是怎么传输的?那杠 trace 就是 你的终极武器了。 好了,讲到这里,恭喜你,你已经解锁了一项非常强大的命令行新技能了, 咱们来快速回顾一下。现在你已经知道怎么用杠 o 和杠 o 高效的下来文件,直到用杠 l 来处理网页转跳。 更厉害的是你学会了用杠 x、 杠 h 和杠 d 像个专家一样和 api 交互。当然最重要的你还学会了怎么用杠 v 像个侦探一样去调试网络问题,这些可都是你在命令行令世界里施展超能力的基石啊! 那么现在问题来了,既然你已经拥有了直接从中端和整个互联网对话的超能力,你第一个想用它来自动完成的任务是什么呢?是每天早上自动抓取一份天气预报?还是写个脚本来帮你盯着你喜欢的商品有没有降价?快在评论里分享一下你的想法吧!

啊啊。

这个接口有点厉害,今天介绍每日检报 api, 该接口为免费接口,企业、个人均可试用。接口可以通过请求获取每日国内新闻检报有完整的接口文档、视力代码、返回参数等,方便接入,宝子们一定要看看!

这个开源爬虫太炸了,八十四 k star 仅通过一个 a p i, 全网数据随便抓,先看看效果有多强,不用写一行爬虫代码,直接调 a p i, 任何网页秒变干净的 markdown 结构化 jason 还能自动截图,连 java script 动态渲染的页面都能搞定。 这就是 fire crawl tapp 上八十四 k star 的 开源项目,专门为 ai 应用提供网页数据,它支持单页抓取、全站爬取、智能搜索。 还有一个 ai agent 模式,你只需要描述想要什么数据,它自动帮你找。 python 和 node sdk 都有,开发者直接上手。感兴趣的话关注一下,在评论区留言分享,我把详细的使用教程发给你。

大家做 ai 视频是不是也跟我一样,每天都在塞薄打工,做一个片子得在几个工作流利,反复横跳,切来切去,效率低到怀疑人生。想跑个大模型,本地显存直接爆红, 电脑风扇响得像要起飞,好不容易跑出一堆素材,本地文件夹乱成一锅粥,找个图跟大海捞针一样,别硬扛了。今天分享一个我自研的神器, 它能直接调用,让 nihub 的 康复 ui 云端工作流不持配置,不用切换,一站式管理。今天我带你彻底告别手动挡时代。 首先打开 runnyhop 平台,把自己经常用的工流程在上面,点击导出工作流 api, 注意导出的 api 而不是 jason, 导出后切换到我的工具上。导入工作流前给工作流命个名,因为这个是生图工作流。选择图片工作流类型,点击文件夹,选择刚才导出来的工作流,点击导入。 添加工作流的就是绑定输入参数,工具会自动识别需要输入的参数,同时还要输入工作流 id。 工作流 id 就是 刚才打开的 running hip 这串数字,把这串数字复制切到工具输入 工具自动作一的节点与名称,与 running 的 工作流的节点 id 一 一对应。因为工作流很多参数都是固定不变的,只需保留经常要改变的参数即可。我这个是图片生成工作流,我经常变动就是宽高 p 字号与输入提示词,其他的都可以删除。 好的,删除完了把这个节点的展示名称改一下,后续好识别,同时给填一些默认值。 工作流配置好的怎么使用工作流可以切到生图配置栏,选择刚才导入的图片工作流提示词,可以用之前生成好的提示词 测试一下高度、宽度和 p 字号,可以用默认的点击开始生图, 等待生成。生成完后查看 runnyhab 生成的图片,切换到工具查看生成的图片是一致的, api 调用成功。 好的制作一个动迁移的视频的整个流程的例子来讲解这个工具是怎么实现制作一个视频的。 首先打开短视频平台,找到你要动作迁移的视频复制链接,然后切回到工具,点击解析并下载,等下载完后,如果播放视频需要截图的内容,请点击截屏,因为这些素材要上传到 running hub 工作流处理, 所以提前上传到 running hub 服务器获取链接保存,后面要用到 切换到创作工作仪的图片域处理,从刚才下载的素材里获取刚才截屏的图片,作反推。提示词处理 ai 解析与生图系统提示词在设置里配置,设置有 runningha baby 的 配置,还有 gemini, 阿里千问的两个大模型,后续还会扩展,目前我认为这两个够用了。然后就是提示词生成的一个系统提示词配置,根据需要可配置多个, 选择配置好的系统提示词模板与反退要调用的大模型。点击 ai 解析,等待提示词生成。生成完后点击以下部, 该部剧就是根据上一部生成的提示词生成图片,选择生图工作流,选择上一部生成的提示词,点击开始生图,等待图片生成。 生图完成后点击生图结果查看,点击图片进行查看, 选择视频工作流动组迁移,除了时长,其他参数都用默认的,然后从素材里选择刚才下载视频,检查阅读 错误后点生成视频, 好的视频生成完了看效果, 根据自己需要是否要高清放大,可以切换到高清放大菜单,选择刚才生成的视频,选择放大的倍数,点击高清放大。 好了,以上就是这个工具目前的表现,它最大的功劳就是帮我把那些琐碎的网页切换时间全部省了下来,但这只是个开始,接下来我会接入更多核心工作流,目标只有一个,实现一键全自动处理。 以后你只需要负责创意,剩下的脏活累活工具帮你搞定,感兴趣的朋友记得点个关注,咱们后续更新见!

网易推深度转化的三种方式呢?给大家分享一下啊。首先大家进入到工具,然后深度转化线索回传工具这里点进去以后,你可以看到在这个下方这个地方呢,它有三种这个深度转化的上报方式,第一个呢就是使用 a p a 上报,第二个呢使用 excel 表格上报,第三个使用这个莱客后台的智能标签上报。 那么深度转化你如果不上报客户数据的话,是完不成上户预训练的,所以你就投不了深度转化目标,比如说这个私信,比如说这个确认意向和预付定金。大家都知道深度转化呢,它的成交率非常高,所以呢被一些大家广泛使用,很多人只知道投这个浅层,比如说这个私信留资,私信消息, 但实际上你不知道的是,深度转化它的成交率要比浅层要高得多好,那么 ipa 上报这里呢,我们就可以使用这个 ipa 的 接口,然后呢去打开这个上报入口,首先呢线索给你推到到你的销售群里面,销售在群里面打开这个接口 页面,然后呢在这里去点击客户的意向度啊,是什么情况,你就选择什么,一秒钟就能完成上报,这个也是官方五星推荐的一种上报方式。 第二种呢就是 excel 表格,这个呢就需要你先下载这个模板发给你的销售,让你的销售把每一个客户数据呢统计下来,然后呢再发给你的投手,投手每天呢在这个地方呢进行上传,需 要注意的是,每一个客户不管是有意向还是没有意向,都需要统计上报,而且每天需要点击上传,不要漏掉。第三个呢就是在这个来客后台点开来客后台去标记,打开来客以后呢,大家需要在这个来客后台的线索的这个线索经营,这里面有一个客字中心,然后呢去点开 找到这个当前线索,然后点击详情,然后呢在这里呢手动的去标记,当然最好你的投手和你的销售是同一个人,要不然这里其实不太好标记,当然你也可以通过设置客服号的方式呢来进行实现。这个就是咱们这个抖音来客里面的这个抖音本地推里面,我们去投这个深度转化的时候三种上报事件的方式。

大家好,今天的数字笔记是展示如何通过阿里云板链来获取大模型的 api k。 首先我们通过代码层面来看一下,我们在大模型中呢就定义了一个 api k, 这个 api k 呢,我们是通过定义个函数从我们本地的一个 jason 文件中获取出来的, 我们通过这种方式目的就是为了隐藏我们的 k 值,当然我们也可以通过其他方式,如把这个 k 值定到环境变量中, 我们使用的是千万大模型,接下来呢,我们来看一下我们的这个 api k 是 如何从千万大模型中获取出来的。首先呢,我们需要进入到阿里云版链,在页面中呢,我们需要找到我们的模型服务,然后再进到我们的密钥管理里面, 然后呢点击创建 api k, 接着按照要求进行填写,我们就可以顺利的获取到这个 api k 了。 创建好之后,我们就可以在页面中看到一个 sk 开头的一个 api k 了,然后我们将申请好的 api k 复制到我们的节省文件中,整个过程呢就好了, 每个账号阿里云都会送一定额度的 token 值,这个 token 量呢完全是够我们的学习和测试的。 当然我们一定要记得把这个免费额度用完即停这个按钮给开起来,不然的话超出了就要扣费,我的千万 plus 就 用完了,现在在用千万 max 以上呢,就是今天我的数字笔记。

今天我们用四十五分钟的时间来彻底讲清楚外部系统打通非数多维表格的六种方案。因为视频比较长,所以我会分成一个合集和七个片段。 那第一个视频片段我们会讲清楚什么是 api, 非数多维表格用 api 能做哪些事情?为什么要把外部数据打通到非数多维表格?那后面每一个视频会讲一个方案, 接下来我们开始讲第一个片段。大家在使用多维表格的过程当中,经常会遇到一些场景,就是需要把别的系统的数据拿到非收多维表格里面来,比如说我们电商平台的订单数据,比如说我们客户管理系统里面的客户数据, 然后再比如说我们广告后台的这种消耗数据,那大家为什么要把这些数据拿到多维表格呢?很很多客户其实最主要的就一个原因就是仪表盘好看直观,然后能把这些数据的分析趋势,然后呢很直观的展示出来。 那这时候把别的系统的数据拿到分数多位表格里面来,本质上其实就是一句话,就是两个系统要能互相对话,而且要能按规矩来对话。那这里面讲的这个规矩其实就是 api, 我 们也不用把它想的特别复杂,我们也不用站在程序员的这个角度上去理解它, 然后 api 最简单,最简单就可以理解成是我们系统对外开放的一组,就你可以这样来操作我的一组入口,那比如说你在分数多位表格上面点了一个新增一行,那系统要做的同样的事情,其实就是通过接口对于表多位表格说,哎,你帮我新增一行, 其实在我们界面上面操作跟在通过接口去操作,对于多位表格来说其实是一样的,最终实现的效果都是一样的,就是新增了一行数据, 那多位表格里面常见的 a、 p、 i 能做的一些事情有哪些呢?你就比如说我们新增一条记录,就像外部系统有一笔订单数据,然后我们要往包里表里面去写一行,就新增一行记录,那我们可以去修改更新一行记录,那比如说这个订单发货了,然后状态变更了,然后这个已经收款了,收货了 我们就可以变更一下状态,这是调的这个修改更新记录的这种接口,那比如说我们可以删除记录,那这一条记录我们不需要了,或者是我们这个非输多页表格里面的这个记录行数太多了,我们需要把比如说二零二四年以前的数据全部删掉,那么就可以去调用删除记录这个接口, 以及包括后面这个查询记录列表啊,增加数据表、删除数据表,这些其实都是可以的。就说对于多维表格来说,每一个多维表格它有一个 id, 然后多维表格里面的每一个数据表它有一个 table id, 那 每一个数据表下面的试图,其实它它含有试图的这个 id, 其实这些都是我们可以通过接口去操作的。 飞书在做这一块的时候,其实开放性做得非常好,就它通过这些飞书多维表格的这个接口,可以把飞书多维表格用的非常灵活。 那所以对于多维表格来说的话,其实 api 不是 一个选选,它其实就是我们平常点的一些按钮,新增啊、删除啊这些,变成了一个程序能调用的一个形式,通过程序也能来操作多维表,就这么一回事。 那讲完 api 接口以后,它这个 api 接口跟我们后面要讲的联系中心、集成平台、自建应用这些是什么关系呢?其实它们两个关系就是 api 接口,它是一个最基础、最基础的东西,基础,然后呢它的分装程度不同,就对应到了后面的各种不同的使用场景。然后比如说如果是我们手工从电商平台下载订单数据,然后手工拷贝进来,这个其实不需要 api 我 们手工去处理就可以了。那比如说像再省事一点的就是 飞速连接系中心,连接系中心它有这现在已经做了好多的,像抖电啊,然后像这个网店通啊,它都做了连接中心,它本质上其实是帮你把 api 接口到 外部的系统的 api 接口到多余表格 api 接口这条链路给配好了,就它们两个系统之间互通的这条链路给你配好了。然后呢你只需要去选一下系统,授权一下子段这些,然后它就能自动去把你这个外部系统这个数据自动能同步过来, 但这种是很省事,但是呢它会也会有些局限,我们后面的时候会讲一下,那再灵活一点呢,你就可以通过飞速集成平台 d 代码这样去编排这些 api 接口,通过编排这些 api api 接口,你就能做到比这个飞速联机中心更强大的一些功能,或者更灵活的一些功能。它其实 在最复杂一些的就是自建联机,不管是哪一种方式,它其实所有的都是 分装了这个 api 接口,只是分装多,分装少,暴露出来你能操作的东西多还是东西少的这种问题,那最底层的永远实现的这个目的都是对这张多维表格做增删改查,对这个多维表的表结构做管理,那就是这么一个目的。那后面我们会讲这几种方案的一个区别。 那在第一趴我们还要讲一下呢,就是飞书多维表格去接入外部系统的数据的时候,有几个 像是算是我们做项目过程当中的一些经验点吧啊?然后第一个就是要有一个唯一的数据标识,对于飞书来说,它的退保有退保 id, 它的这个每一行记录有 record id, 但是呢这些东西 对应到我们外部系统的时候,我们外部系统也是需要一个 id, 然后比如说我们的订单号,比如说我们银行的流水号,就这些不会重复的这些 id, 那 最好是能用这么一一个 id 的 话,那这样子你从外部系统去往过取数据的时候,可以去查重,然后判断这一条数据之前有没有同步过,那这样避免做出来一堆的这种这种重复行, 那就很难看了。再另外一个就是做数据对接的时候,我们先要把多维表格的表结构设计好,然后多维表格表里面的每一个字段设计好,这样子去设计好了这个表结构和字段以后,然后呢再去跟 三方系统这个 api 接口里面的字段去做匹配,因为 api 接口一般都是一个英文字段嘛,那我们可以在这个多维表格里面去做一些中文字段,那这个匹配关系大家要自己把它记清楚啊。然后如果说是这个表头表结构,这个这个表头变了, 那我们就需要再去修改它这个对应关系的那同步的节奏,大家可以按照系统的要求来了,它可以其实实时的,因为好多系统都可以支持往外实时推送数据的,飞视多页表格也是能支持实时去接收的。 然后呢也可以去按照我们的业务需求,比如说你把它配成一个小时啊,一天啊、一周啊,这个其实都是可以的。然后这里面有一个飞书多余表格,如果是免费版本的话,它一个月有一万次的 api 调用的次数限制,如果是付费版本就没有这个限制了,调用多少次都可以。 最后一个比较关键的也是我们做项目过程当中经常遇到一些坑的,就是一定要在设计的过程当中和开发的过程当中把这个荣誉检查排错这些接口留好啊。然后如果说真的数据出了问题以后,我们可以去很方便的去维护和排查。 接下来我们讲一下为什么要通过 api 打通三方系统和多维表格,以及后面的我们几个打通方案的一个对比。 那接下来我们就看为什么要做打通,那做打通其实最主要的一个原因其实还是为了支撑咱更好更更快的赚钱。咱做电商其实无非把货再卖出去,只要能选好品,把东西卖出去,供应链能跟上,钱才能不停的流动。 然后这里面的时候其实中间会涉及很多的数据的沉淀,合并统计这些方面的东西。那这些方面现在我们接触到的很多客户,他其实这里面的数据沉淀 是相对来说比较少的,数据的统计很多时候都是通过人工来去做的,人手工来去操作。我们要统计哪些数据?比如说财务的报表、进销存的这些统计,很多都是手工来统计呢, 其实反馈是比较慢的,我们见过的客户里面,他手工统计,我见过最快的手工统计基本上就是一天一次,这是我见过最快的,就那个老板每天要他每天下班要看一次报表。刚我看有同学发誓,亚马逊这个 ebay、 tiktok 这些能统计到。亚马逊和 tiktok 这些都是有接口的,他你通过 rp 也行,通过接口平台去取数据也行,都可以。 所以这个我列到的一些根据我们的经验看到的一些常见的一些问题,最多的每天都要靠人工去搬搬这些数据,那数据量大了以后,比如说我处理一下,要要给下一个岗位去处理,那下一个岗位处理完以后要再交回给我,那相当于来回传递的过程当中,这个表可能就乱套了,这个数据就老是对不准。 所以呢这个就是为啥我们要说要打通数据,能让这个老板能看得见数字,管得住业务,能提得起效率, 最终能支撑咱,比如说周转率能提升这样子,咱本来一年,比如说周转一次能赚到钱一一年周转一次,那变是不是能变成十次? 那毛利率,哪怕这个周转一次能百分之十的毛利率,你周转十次是不是就变成百分之一百了?你得拿这个杜邦方程来算,它周转率是能支撑咱最最终的贡献利润的提升。再往下看,他这个讲到咱自己的现在这个方案, 看这张图就能看到很直观,能看到你看左边这个是外部的三环平台数据,右边比如说是我们的多维表格,那中间的时候经过了啥?它其实是经过了,这无非就是三条途径,一条是这个 rpa, 一 条是图虫爬虫,一个是 api, 那 api 的 时候评论可以统计,但一般我看这个你可以把评论的数据抓过来,现在 a x 可以 去帮你分析的评论的数据,我们之前还作为了一个客户的,他那个评论都是自动回复的,机器人自动去回的。他现在这个 通过这三种途径可以把数据抓过来以后他一方面你可以通过这个,有一部分你可以通过飞速连接系中心,有一部分你可以去自定义开发,还有些其他工具平台。这中间的这几个其实把图片放大一下, 这中间几十路,我今天不是列了一个说咱有六种方案,去后面要讲这六种方案吗?其实六种方案就是这里面的这三个中间的一个组合加一个人工,这几个中间的一个组合加一个人工,其实组合出来了六种方案。

一天一个计算机知识,今天要讲的是 swiger, swiger 是 什么架构?是怎么样的?想象你是一家科技公司的后端开发人员,你刚刚完成了一个新的 api 应用程序编程接口的开发,这个 api 可以 实现用户注册、登录、 查询信息等功能。现在前端开发人员需要根据你提供的 api 来开发用户界面,但问题来了, 他们怎么知道这个 a p i 的 具体细节呢?比如有哪些接口可以调用,每个接口需要传入什么参数,返回的数据格式是什么样的?要是没有清晰的说明,前端开发人员就只能不断地来问你, 这不仅浪费彼此的时间,还容易在沟通中出现理解偏差,导致开发效率低下。这种情况在很多项目开发中都很常见。那么有没有一种工具可以解决这个问题, 让 api 的 信息清晰明了的展示出来呢?答案就是 swagger。 我 们先来看看 swagger 是 怎么一步步发展而来的。在没有 swagger 之前,开发人员通常会使用文档来记录 api 的 信息。就好比你去图书馆借书,需要一本图书目录来告诉你每本书在哪里,有什么内容。 开发人员会手动编辑一份文档,详细描述每个 api 的 功能参数、返回值等。但这种方式有很多弊端,文档更新不及时是常有的事,当 api 发生变化时,开发人员可能忘记更新文档,导致文档和实际的 api 不 一致。而且手动编辑文档很麻烦, 需要花费大量的时间和精力。所以能不能有一种更智能、更高效的方式来管理 api 文档呢? 斯基就应运而生了。斯基的核心是一个规范,它定义了一种描述 api 的 标准格式,就像一种大家都能理解的语言。通过遵循这个规范,我们可以用一种结构化的方式来描述 api。 比如我们可以用 jason 或者 yaml 格式来描述一个 api 的 所有信息, 就像用一种特定的语法来写一篇文章,让文章的结构和内容都很清晰。 swagger 的 架构主要由几个部分组成,首先是 swagger specification。 swagger 规范, 这是整个 swagger 的 基础,它规定了如何描述 api 的 各个方面,就像建筑的设计图纸,规定了建筑的各个部分应该是什么样子。如何连接 swagger specification 定义了 api 的 路径、请求方法,如 getpost 等参数响应等信息。有了这个规范,不同的工具就可以根据它来生成各种有用的东西。然后是 swagger editor, 这就像是一个写作工具,开发人员可以在里面编辑符合 swagger 规范的 api 描述文件。 它提供了一个可适化的界面,让开发人员可以方便地输入和编辑 api 的 信息。就像你用 word 来写文章一样, swag editor 可以 帮助你更轻松地创建 api 文档。 swag editor 还能实时检查你编辑的内容是否符合规范,如果有错误会及时提示你。 接着是 swag editor, 这是一个非常重要的部分,它可以将 swag editor 规范描述的 api 信息以一种美观直观的方式展示出来,就像把一本枯燥的图书目录变成了一个精美的图书馆。导航系统前端,开发人员可以通过 swag editor 直观地看到 api 的 所有信息, 还可以直接在界面上测试 api, 它们可以输入参数,发送请求,查看返回结果,就像在实际使用 api 一 样。这样,前端开发人员不需要再依赖后端开发人员的口头描述或者文档,自己就可以快速了解 api 的 使用方法。 最后是 swagger codegen, 它就像是一个代码生成器,可以根据 swagger 规范描述的 api 信息生成客户端和服务器端的代码, 这大大提高了开发效率。比如,如果你要开发一个客户端应用程序, swagger codegen 可以 帮你生成调用 a p i 的 代码,你只需要在这个基础上进行一些简单的修改和扩展就可以了。 就像给你提供了一个半成品,你只需要进行一些装饰和完善,就能完成整个作品。 swagger 是 什么?简单来说, zogger 是 一组工具和规范,用于设计、构建文档化和使用 restful api。 它通过统一的规范,让 api 的 信息更清晰,更利于管理和使用。 zogger 在 很多领域都有广泛的应用,在企业及应用开发中,它可以帮助不同团队之间更好地合作。后端团队可以专注于 api 的 开发, 前端团队可以根据 swag 一 y 提供的信息快速进行开发。在开源项目中, swag 可以 让更多的开发者更容易地使用和贡献代码。 而且 swag 还有丰富的插件和扩展,可以根据不同的需求进行定制。现在大家明白了吗?最后遗留一个问题, swagger 虽然功能强大,但在一些复杂的分布式系统中,如何更好地管理和集成多个 a p i 呢?这就涉及到 swagger 的 一些高级应用和集群管理了。下期我们聊聊这个话题。

在 c 扩与 api 模式下,数据又是如何精准显示和替换的呢?数据回显新增了两个关键参数,分别是收 p 和收 v 六。那数据回显到底是用来显示什么的呢?假如你选择了一条数据并完成绑定,将其存入业务表或数据库,下次打开或编辑这条记录时, 只要显示相关信息,就要靠数据回显实现。这里的 v 二条件是固定,写法是硬性规则。从原理上来说,收 p 代表存储字断,在后台执行时会替换对应的值。收 v 六则会背 数据库业务表中的实际值替换,以此获取对应的记录。需要注意的是,存储自断绑定有要求自断编码对应的数据,在当前接口集里必须具备唯一性,不然无法精准定位数据。就 像有两条记录 id 相同,就不知道该定位哪一条了。说完数据回显,再看看 a p i 的 数据配置。 a p i 多了一个分类参数,变量名是固定的,包括客人配置、当前页配置 size、 每页的条数以及替位的关键词查询。以上就是 c 框与 a p i 模式下数据回显与分页参数的配置内容,你都了解了吗?

爬虫逆向实战教学系列第十六期猫眼票房数据采集,我们今天来看的是猫眼的票房数据采集,同样也是一样的右键选择检查,打开开发者工具,打开之后进入到网络面板当中,在这里去刷新抓取数据包,然后 ctrl 加 f 弹出来搜索框之后,再来去搜一下对应的这个数据。 我们来看一下这里的第一个是疯狂动物城二,我们可以搜一下他这个是零四,这个是零一,零一是疯狂动物城二,搜索疯狂动物城二二 搜索发现他在这里都有出现,一二三四五五个数据包里面都出现了,而且他这五个数据包都是一模一样的名字,那也就是说他在不断的去发包,这个猫眼他的确也是实时的去更新的,所以他在这里会不断的去发数据包。我们随便找一个来看, 在这个里面他的确有对应的一些数据,比如说什么上亿六十七天名称,他的一些百分比啊,其他的一些数据,那这个地方其他的数据其实没什么好说的,他都是正常的去获取就好了。就综合票房他是去给他做了加密了的这样的一个建值段里面的一个 number, 这个是做了加密的,所以我们在想象当中能拿到的也是这样的一个数据,你就需要去给他做解密,给他解回来,我们可以先去试一下右键去复制他的一个 c 二幺,在这里通过一个转换工具给它转换成 python 代码去复制一下, 我们这里创建一个拍子文件,猫眼票房好粘贴过来之后, cookie 给他解开,这上面的给他收起来一下,我们先来去测试一下能不能得到正确的数据。 print response 点 json, 它是 json 格式的数据,可以右键去运行,看一下能不能得到。是能够得到正确的数据的,它在这里获取到的数据的确也都是密文值, 那这个时候它其实是什么?就是字体加密,我们在这里的一个元素面板去看的时候,它这里也是不会显示出来的,来看一下这里,它也是没有显示的, 它是一种字体加密,那么字体加密肯定就会有字体文件,我们这里可以看一下,你会发现他这里每次去发一个 movie 的 数据包的时候,下面都会带一个什么?带一个点 word 的 字体文件,那么这个点 word 的 字体文件的 y r y 能不能搜到?我们可以搜一下 这个地方,给它拿过来一点,好给它搜一下这个后缀,其实它是能搜到的,而且它其实就是在什么,在这个数据包当中, 在这里有个 font 这样的一个样式,样式里面包含了这样的一个链接,所以我们也可以去取,可以在文档这里来看一下,它是直接字典去取值就好了。我们这里取一下这样的一个 font style, 这里给大家赋个值,赋个变量, 比如说来个 data, 那 么 data 去取这个链接,我们来去打印看一下。 print u r l 右键去运行,是能够得到这样的一个链接的, 得到了之后,但它这里还需要去做一下处理,是吧?因为我们这里要去取它,它里面还有一些其他的东西,当然你可以通过正直来去取,也可以通过一些字母串的处理方式来去处理,我们这里就可以去用切割的形式,比如这里用它来做切割, 切能切出来三个,我们去取最后一个,那么这就是点 split, s p, l i t。 用它来做切割,去取最后一个,取到了最后一个之后再来去对它做处理,我们把后面的这个给它去掉就好了。点 replace 啊, e p l a c e 去掉 定位替换为空,前面呢需要去给它拼接上 h t t p s, 这里再给它拼接一下,就是一个字体文件的 u r l 了。 h t t p s。 加个冒号吧。好,这里是 font u r l。 再来跑一下,现在这里就得到了这个链接之后我们就给他请求下载到本地,那这里再去给他这个字体文件,我们也给他单独的去带一个 adidas 过去,请求他这里就是一些这样的一个数据,我们来去再转换一下,因为他字体文件和普通的一些其他的文件可能不太一样。请求头我们给他单独拎一个过来。好,这里给大家再设置一个,比如说是放 adidas, 设置好了之后,这个地方收起来,我们就给它请求一下 v 字 open, 这就是猫眼点儿 word 这样的一个后缀。 w b 模式,给它写入 r s f f 的 right, 去写入它的什么静止格式的数据。 get 这个 y y 就 等于放调 y, y 也等于放了 y y, 点 content 去写入它的静止格式的数据。来跑一下,能不能给它下载到本地这个字体文件,这里就多了一个点 word 的 一个后缀文件,我们在本地打开看一下, 打开之后这里可以去双击,用对应的一个软件给他打开,稍等一下,这个字体软件他启动会比较慢,这个时候就可以看到他在这里就得到了这样的一个界面,这个就是他里面那些数字,零一二三四五六七八九,包括一个点、小数点之类的,他也是有的, 就可以去通过这样的一个字体文件,然后去得到他对应的一个印刷关系。那么怎么去获取他的印刷关系?他的印刷关系是什么东西?这里我们可以看到他的一个数据文件里面是这样的一个数据,他这里肯定是一个编码,就对应的是一个数字, 这里应该也不是不叫编码,他这里是一个相当于密文值,就对应了一个数字,那么就需要找什么?就需要去找到。比如说这个密文值他对应的是谁,这个密文值他对应的是谁,他肯定证实是变化的, 我们要去找到他的一个印刷关系之后,再来去把这样的一个密文纸给它替换成明文纸。至于怎么去给他做识,怎么去给他找到印刷关系啊?这里他其实要去用一些识别模块,我这里就有一个代码, 我们就可以去导入这个代码,去教给他识别就可以了。 from import 这个识别导入文件。好,怎么去用?这里就直接用它识别导入文件,去点这样的一个方法。 get 这个方法,咱们这里就得传一个路径过去。好,他这里过去得到一个结果, resuit 结果来打印看一下 print resuit 右键去运行,他会交给对应的识别模块去做识别, 那就得到了这样的一个识别的结果,比如说他把这个识别成了一个八,把这个识别成了一个九,对应的是一样的,这里会得到一个最终的结果字典, 这个字典我们要去给他做一下处理,这个一二零其实看起来好像要给他带上说不定是什么其他特殊的东西。那现在我们这里就可以去给他做一个处理了,这里他是什么?他是一个相当于密文值,对应上的是明文值, 那么你说这个密文值他和我们在想象当中看到的也不一样,他这里是这样的一个形式,是吧?这是因为他在这个地方是显示的实景值, 我们这里要去给它弄成十六帧制的,就需要去循环,循环这个 reset 点 item, 这样呢这个是一个字典,去这里我们可以去给它 for key value, 这里来打印看一下 key 和 value, 右键去运行就能够去得到这样的一个东西。得到这个东西之后我们就再去给它做一个,比如说十六帧制的转换 变成了这种形式,变成了这种形式之后,它这里依旧还是不太一样,但是它后面的位数是一样的,后面是四位,前面的零 x 不 一样。密文就是这样的一个拼接符井号 x, 所以 我们就需要去把这个零 x 给它替换成拼接符井号 x, 假如把零 x 啊替换成这个好, 那么这个就是我们的一个,比如说新的 key, 新 key 这里我们就再来去弄一个,比如说 font d i c 创建出来一个字典,这个地方就是一个 font d i c, 它的一个 key 就 等于这个铭文值,最后我们这里再来去让它得到最终的映涉关键字典得到了之后,现在我们就可以去循环这样的一个数据了嘛, 我们去取这个数据的,这里就没什么太多好说的,这个正常去循环取值就好了,这里直接把它代码给大家复制过来啊,差不多就是这样的一个形式,给大家做循环取值就好了。我们来就先跑一下,其他的没有去打印,就只打印了简单的一些 不需要去做解密的内容,那么现在需要去做解密的内容来打印看一下, print 它好,这个数据我们需要去给它做解密,我们就把这个数据再交给一个函数去做一下处理,我们就给它分成一个函数,就不在这个循环里面去写了。比如这里来个什么替换,他接受一个,比如说,嗯,现在我们这里要去循环这样的一个字典,循环这个字典, four, 这个 key, v, 这个 d, i c, atom 在 这个地方就可以去对 n 来做替换的, n 等于 n 点 plus, 将什么呢?将它的 key 值、密文值替换成什么?替换成对应的铭文值就好了,我们最后循环结束之后给它 return, return 这个 n 就 好了, 把这个数据给它传出去的是替换,这里是传入他接收,比如说就接受一个 n 来打印看一下 print n, 右键再跑一下,那么就能够去得到对应的一些数据了,它中间有有分号呢,咱们在它返回的时候把这个分号给它替换掉就好了。加入 plus, 将分号替换成空值来再跑一下, ok, 就 得到数据了。幺幺三五点三八来看一下这里是不是刷新,他肯定会变化幺幺三五点五一了,这里他咱们再跑一次,他这里是在不断的增长的, 现在这里也在变化,变成了六一了,幺幺三五点六幺了,现在这里六九了,他在这里不断的去加。好吧?这里我们就给他做解密了,下面的零点零,零点零零的也是正确的一些数据,这个就是猫眼票房的一个字体加密的一个逻辑。