数字旗手

电气化、自动化、数字化、智能化、智慧化

0%

Authentik是目前在自托管领域非常受欢迎的开源身份认证与授权系统,它是很多现代应用(包括FastAPI、Vue、Kubernetes Dashboard、Grafana 等)常用的统一身份认证(SSO)解决方案。 它可以实现的主要功能清单如下: 类别功能描述🧑 用户管理用户注册、密码找回、邮箱验证、分组、属性扩展🔐 登录方式用户名+密码、MFA(TOTP、短信、WebAuthn)、社交登录🔄 单点登录 (SSO)完整支持 OIDC、OAuth2、SAML 2.0🎟️ 授权内置 RBAC(角色、组、策略),支持自定义规则(Python 表达式)🧾 应用管理可以为任意外部应用注册
Read more »

Langfuse是一个开源的LLM工程平台/可观测 (observability) 工具,旨在帮助开发、监控、评估、调试基于大语言模型 (LLM) 的应用。本文将从0经验开始试用下Langfuse,看看它有哪些功能及其效果。 安装部署 可以直接注册个Langfuse Cloud账号来体验,也可以自部署,这里采用docker进行自部署: 1 2 3 git clone https://github.com/langfuse/langfuse.git cd langfuse docker compose up 顺利启动后,可以通过http://localhost:3000来访问。
Read more »

当前“规范驱动开发”(Spec-Driven Development)火热程度超过了“氛围编程”(Vibe Coding),本文尝试使用Claude Code搭配Spec-Kit来体验下。 安装必要软件 安装Claude Code 一条命令执行即可: 1 npm install -g @anthropic-ai/claude-code 设置模型 国内使用Claude系列模型的门槛较高,这里使用Qwen3-Coder来替代。可以参考这里。 因为Qwen3-Coder提供了对Anthropic格式的支持,所以直接设置环境变量即可。 对于其他模型,可以使用claude-code-rou
Read more »

这是记录一下在阿里云服务器部署n8n的过程。。 购买 云服务器推荐购买至少4GB内存,这样服务器不容易卡死。 部署n8n 使用npm部署n8n未成功,此处使用docker进行部署。 创建卷 1 docker volume create n8n_data 运行 1 docker run -it -d --restart unless-stopped --name n8n -p 5678:5678 -e N8N_SECURE_COOKIE=false -e N8N_HOST=http://8.130.100.xx -e N8N_PORT=5678 -e N8N_PROTOCOL=
Read more »

介绍 之前写过一篇使用NvChad来配置Neovim的博客,今天试试使用LazyVim来将Neovim打造成IDE。 教程: * LazyVim for Ambitious Developers * Zero to IDE with LazyVim 前置条件 LazyVim需要的前置条件(软件及其版本号)要满足要求,可参见官方文档。 Neovim 1 brew install neovim 如果遇到问题,可以参考这一篇。 安装LazyVim Starter 备份当前配置 1 2 3 4 5 6 7 # required mv ~/.config/nvim{,.bak}
Read more »

资料 52讲轻松搞定网络爬虫 遇到动态页面怎么办,详解渲染页面提取 前面我们已经介绍了 Scrapy 的一些常见用法,包括服务端渲染页面的抓取和 API 的抓取,Scrapy 发起 Request 之后,返回的 Response 里面就包含了想要的结果。 但是现在越来越多的网页都已经演变为 SPA 页面,其页面在浏览器中呈现的结果是经过 JavaScript 渲染得到的,如果我们使用 Scrapy 直接对其进行抓取的话,其结果和使用 requests 没有什么区别。 那我们真的要使用 Scrapy 完成对 JavaScript 渲染页面的抓取应该怎么办呢? 之前我们介绍了 Seleni
Read more »

资料 52讲轻松搞定网络爬虫 无所不知的Scrapy爬虫框架的介绍 在前面编写爬虫的时候,如果我们使用 requests、aiohttp 等库,需要从头至尾把爬虫完整地实现一遍,比如说异常处理、爬取调度等,如果写的多了,的确会比较麻烦。 那么有没有什么办法可以提升我们编写爬虫的效率呢?当然是有的,那就是利用现有的爬虫框架。 说到 Python 的爬虫框架,Scrapy 当之无愧是最流行最强大的框架了。本节我们就来初步认识一下 Scrapy,后面的课时我们会对 Scrapy 的功能模块进行详细介绍。 Scrapy 介绍 Scrapy 是一个基于 Twisted 的异步处理框架,是纯 Py
Read more »

资料 52讲轻松搞定网络爬虫 智能化解析是怎样的技术 我们知道,爬虫是帮助我们快速获取有效信息的。然而在做爬虫的过程中,我们会发现解析是件麻烦事。 比如一篇新闻吧,链接是:https://news.ifeng.com/c/7kQcQG2peWU,页面预览图如下: 我们需要从页面中提取出标题、发布人、发布时间、发布内容、图片等内容。一般情况下我们需要怎么办?答案是写规则。 那么规则都有什么呢?比如正则、CSS 选择器、XPath。我们需要对标题、发布时间、来源等内容做规则匹配,更有甚者需要正则表达式来辅助。我们可能需要用 re、BeautifulSoup、PyQuery 等库来实现内
Read more »

资料 52讲轻松搞定网络爬虫 App爬虫是怎么着情况 前面我们介绍的都是爬取 Web 网页的内容。随着移动互联网的发展,越来越多的企业并没有提供 Web 网页端的服务,而是直接开发了 App,更多更全的信息都是通过 App 来展示的。那么针对 App 我们可以爬取吗?当然可以。 我们知道 Web 站点有多种渲染和反爬方式,渲染分为服务端渲染和客户端渲染;反爬也是多种多样,如请求头验证、WebDriver 限制、验证码、字体反爬、封禁 IP、账号验证等等,综合来看 Web 端的反爬虫方案也是多种多样。 但 App 的情况略有不同,一般来说,App 的数据通信大都需要依赖独立的服务器,比如请
Read more »

资料 52讲轻松搞定网络爬虫 Ajax的原理和解析 当我们在用 requests 抓取页面的时候,得到的结果可能会和在浏览器中看到的不一样:在浏览器中正常显示的页面数据,使用 requests 却没有得到结果。这是因为 requests 获取的都是原始 HTML 文档,而浏览器中的页面则是经过 JavaScript 数据处理后生成的结果。这些数据的来源有多种,可能是通过 Ajax 加载的,可能是包含在 HTML 文档中的,也可能是经过 JavaScript 和特定算法计算后生成的。 对于第 1 种情况,数据加载是一种异步加载方式,原始页面不会包含某些数据,只有在加载完后,才会向服务器请求某
Read more »