开源工具几乎是每个开发者都会用到的,无论是学编程还是开发实际应用。
Python 最近在 GitHub 上变得最受欢迎,超过了 JavaScript。现在,Python 和 JavaScript 都成了开源领域里最受欢迎的两种编程语言。
本文将介绍 7 款开源工具,这些工具可以帮助 Python 和 JavaScript 开发人员更好地完成项目,从而提升项目质量。
让我们出发吧! 🚀
你可以用这些工具在你的项目中,甚至可以为它们做出贡献,让它们变得更好。
此处留空 等等 (dengdeng)
构建可靠的网络爬虫 — Crawlee (https://crawlee.dev/)Crawlee 是一个用于网页抓取和浏览器自动化的开源库。它支持通过 Puppeteer 和 Playwright 等工具进行 HTTP 请求和无头浏览器抓取。
它的反阻塞功能,如代理轮换和浏览器指纹,帮助避开检测。Crawlee 还支持自动扩展规模并支持 TypeScript,无论任务大小,都能保证可靠和高效。
最好的一点是? Crawlee 可以无缝地与 Node.js 以及 Python 一起使用。如果某个网站需要 JavaScript 渲染,你可以轻松切换到浏览器爬虫。之后,如果你找到更适合的 API,只需切换回 HTTP 爬虫,而无需重写你的项目。
运行 Crawlee 快速开始,先安装包含所需依赖和示例代码的 Crawlee CLI 即可。
npx crawlee create my-crawler
# 运行此命令来创建一个新的爬虫项目 (Run this command to create a new crawler project)
进入全屏 退出全屏
Crawlee自带三个主要的爬虫类:CheerioCrawler
,PuppeteerCrawler
和 PlaywrightCrawler
,它们拥有相同的接口。
你可以在项目中通过以下方式运行Crawlee:
在终端中输入以下命令来安装crawlee npm包:
npm install crawlee
全屏模式 / 关闭全屏
我们来看一个用Crawlee抓取网站所有链接的例子:
import { PlaywrightCrawler } from 'crawlee';
const crawler = new PlaywrightCrawler({
async requestHandler({ request, enqueueLinks, log }) {
log.info(request.url);
// 添加页面中的所有链接到 RequestQueue
await enqueueLinks();
},
maxRequestsPerCrawl: 10, // 限制仅10个请求(如果你想爬取更多链接,可以去掉这个设置)
});
// 用初始请求启动爬虫
await crawler.run(['https://crawlee.dev']);
请点击全屏,退出全屏
这里使用enqueueLinks()
方法,爬虫在遍历页面的过程中来添加新的链接到RequestQueue
。去掉maxRequestsPerCrawl
选项,你可以用它来抓取一个域上的所有URL。
你可以从其文档中找到更多示例和资源,帮助你在项目中正确地使用Crawlee。
该项目在 GitHub 获得了超过 15k 的星标,并且在不断进步和完善。
快来给Crawlee点个Star吧,在GitHub上!⭐️
(内容省略)
或者使用此处省略内容 (chǔcǐ shěnglüè nèiróng)
🚨 活动来了! 🚨Crawlee 给社区送 3 件专属的卫衣。
- 点击下面的按钮给Crawlee在GitHub上的项目点个星。
- 在文章评论区留下你的GitHub用户名吧。
行了!
Crawlee将在2024年12月31日抽取幸运获奖者。
此处省略内容
Marimo - Python的反应式(Reactive)笔记本"这种可爱的水草叫玛里莫"
Marimo(一个开源的基于Python的笔记本环境,网址:https://marimo.io/)使处理数据变得更加互动和直观。它支持Python脚本和笔记本文件,并支持通过Git进行无缝版本控制。
Marimo的突出特点是其互动式用户界面,当一个部分发生变化时,其他依赖的部分会自动更新,非常适合用于实时数据分析,使其成为实时数据探索的理想工具。
它非常易用,提供了许多高级用户所需的特性。比如,它可以用来制作互动工具,例如嵌入式视觉化工具。
注:这里可以使用“水苔球”或其他更贴切的中文表达来代替“摩洛莫”。
你可以在终端运行以下安装命令来快速开始Marimo:
pip install marimo # 或用 conda install -c conda-forge marimo
marimo tutorial intro
运行以上命令来安装marimo并查看教程介绍
切换到全屏,切换回正常模式
创建或编辑笔记本吧:
可以进行马里莫编辑 (一种特定的编辑方式)
进入全屏 退出全屏
打开应用:
marimo:运行一下 your_notebook.py
进入全屏, 退出全屏
和玛里莫:最好的部分
-
将您的笔记本运行成网络应用:通过隐藏Python代码,将您的笔记本变成一个互动网络应用。
-
当作脚本, 运行你的笔记本像脚本一样
- 自动转换:使用命令行(CLI)自动把Jupyter笔记本转成marimo笔记本。
你可以通过它的文档了解更多关于Marimo的内容,并在那里找到相关的资源,以便将其正确地应用于你下一个Python工作流程中。
他们在GitHub上有8千多颗星,社区发展得非常快!
此处省略内容(省略内容)
Deno — 现代 web 的 JavaScript 运行时(Deno 是一个用于运行 JavaScript 和 TypeScript 代码的运行时环境。)
Deno 是一个开源的 JavaScript 运行时,旨在为开发者提供现代化且安全的开发体验。Deno 基于 V8 和 Rust 构建, 默认情况下即简易又安全。
只需在你的 Mac 或 Linux 上运行一个命令就可以安装 Deno:
如果你想安装Deno,可以使用下面这个命令:
curl -fsSL https://deno.land/install.sh | sh
切换到全屏模式,或退出全屏
在 Windows 中,运行这个。
irm https://deno.land/install.ps1 | iex
运行此PowerShell脚本以安装Deno环境.
进入全屏 退出全屏
它还支持原生 TypeScript,并包含内置工具来处理代码校验、代码格式化、测试和编译成独立可执行文件等任务。
虽然 Deno 与 Node.js 有很大不同,它提供了一个 Node.js 兼容层,这样让你几乎无需改动就能运行现代 Node.js 项目。此外,你也可以从 Node.js 迁移到 Deno,让你的代码变得更简洁高效。
点击查看(一个JavaScript运行时)
Deno 采用严格的权限模型,除非明确授予权限,否则对文件、网络和环境的访问都会受到限制。其全面的 API 和极简的配置使其成为云和边缘计算的理想选择,提供了构建和运行应用程序的灵活环境。
通过其官方文档找到适当的资源来正确地将其融入你的工作流程中,并了解更多关于Deno的信息。
他们在 GitHub 上有 98k+ 的星标,成千上万的开发者在使用 Deno!
Deno 星 GitHub 上 ⭐️](https://github.com/denoland/deno)
……
Wasp - 更快地构建全栈Web应用如图所示,这是一只黄蜂。
Wasp(https://wasp-lang.dev/)是一个开源框架,旨在简化全栈 web 开发流程。你可以轻松地在 React、Node.js 和 Prisma 上构建 Web 应用程序。
它简化了现代化 web 应用的设置和编排,通过为你处理样板代码和配置。凭借其简单的配置语言,Wasp 让开发人员可以专注于应用的核心逻辑,同时自动化重复性任务,从而使开发变得更快更高效。
对于快速启动 Wasp 时,请在 Linux / OSX / WSL (Windows) 使用以下安装命令:
运行安装脚本
curl -sSL https://get.wasp-lang.dev/installer.sh | sh
全屏进入,全屏退出.
新建一个应用:
初始化黄蜂
全屏, 退出全屏
现在,打开Wasp应用:
cd <我的项目名>
wasp 启动
全屏模式退出全屏
你可以在本地服务器上轻松查看这个全栈 Web 应用,网址是http://localhost:3000/。
如果你想看看如何轻松地在下一个全栈项目中使用 Wasp,查看他们的教程这里。
你可以通过它的文档了解更多关于Wasp框架的内容,并在其文档中找到合适的使用方法。
他们在 GitHub 上有13K多的点赞,还有很好的社区帮助!
……
PydanticAI – 代理架构PydanticAI 是一个新的代理平台,旨在简化将生成式AI集成到生产级Python应用中。
特别值得一提的有:
-
结构化的输出验证:它确保AI生成的输出符合预定义的数据结构,减少意外情况。
-
管理依赖关系:提供简单的工具来轻松管理同步或异步依赖项。
- 模型无关性: 支持多种AI模型,例如OpenAI、Groq和Gemini的模型,从而可以在不同应用场景中实现无缝集成
充分利用 Pydantic 的优势,并借助 OpenAI SDK 的验证功能,结合 Anthropic SDK、LangChain、LlamaIndex、AutoGPT、Transformers、CrewAI、Instructor 等多个工具。
PydanticAI 可以在 PyPI 上找到,所以你可以通过运行命令来进行安装:
pip install PydanticAI
在命令行中输入以下命令来安装 pydantic-ai
:
pip install pydantic-ai
进入全屏 退出全屏
您可以选择与可选的Logfire集成一起使用,或者只需安装示例。
安装包含示例的pydantic-ai包
pip install 'pydantic-ai[examples]'
进入全屏, 退出全屏
这些例子要求您设置与LLMs的认证并遵循额外步骤,所有相关内容可以在文档中找到。
PydanticAI 是一个新的代理框架工具,部分功能仍处于测试阶段。如果你打算试试,你可以在这个早期阶段参与进来。
你可以从其文档中了解更多关于PydanticAI代理框架工具的信息,并通过文档找到如何在您的工作流中适当使用它的资源。
他们在 GitHub(https://github.com/pydantic/pydantic-ai)上有 1.3k+ 星标,并且拥有强大的 Pydantic 社区的支持!
PocketBase — 单文件后端
"PocketBase的官方图片"
PocketBase 是一个开源的自托管的后端解决方案,旨在构建全栈应用程序,注重简洁性和便携性。
它提供了诸如认证、文件存储和实时数据增删改查操作等必备功能,所有这些功能都在一个服务器实例中实现。非常适合小型至中型应用,比如移动应用后端和SaaS平台。
一些很棒的功能有:
-
支持多种前端框架,例如 Svelte、Angular、React 等
-
JavaScript, 和 Dart SDK
自行托管
PocketBase 是为了帮助构建独立的应用程序而创建的。对于需要轻量级后端但又不想处理多个服务复杂性的项目来说,它是很好的选择。
这个项目是完全开源的,并且由志愿者维护,没有任何资金赞助。你可以通过这里参与其中,并探索文档中的功能和实现细节。
他们在 GitHub 上获得了 41k+ 的星,并由业余贡献者们维护。
给 PocketBase 点赞或加星标在 GitHub 上](https://github.com/pocketbase/pocketbase)
KitOps - 让机器学习合作更简单
KitOps 是一个开源工具,它重新定义了数据科学家、开发人员和运维工程师如何在 AI/ML 模型、数据集和源代码上合作。
通过利用Modelkit,一种OCI打包标准,KitOps提供了一种统一的方法来打包、版本管理和部署资源和工具,在不同环境中实现资源的打包、版本管理和部署。
使用KitOps,你需要安装Kit CLI并通过运行命令来检查版本。
套件版本号
进入全屏 退出全屏
登录符合OCI规范的注册表,可以使用以下命令运行:Jozu Hub是KitOps用户的首选。
运行 kit 登录 jozu.ml
点击以进入或退出全屏模式。
登录后,从 Jozu Hub 下载一个示例 Modelkit,并通过运行以下命令:在您的工作流中测试它。
kit unpack jozu.ml/jozu-quickstarts/fine-tuning:latest # 解包 jozu 的快速入门教程
全屏 退出全屏
解包命令会将 ModelKit 的内容解压到当前目录,你可以自己试试,了解更多。
关键特性
-
遵循OCI规范的打包:将模型、数据集、配置和代码打包成模型套件(ModelKits),以便简化版本控制。
-
注册的灵活性:兼容任何符合OCI标准的注册表,确保与现有的AI/ML工作流程无缝对接。
- 基于 YAML 的自定义:使用直观的 YAML 文件配置管道、微调 LLM 和构建 RAG 管道。
最棒的部分是?
如果你是一名使用Python脚本在Jupyter Notebook上工作的数据科学家,并且你的团队中有构建LLM模型的AI工程师,KitOps可以帮忙填补这个鸿沟。
它能够使团队间无缝合作,将多样化的流程整合成统一的工作流程,从而实现最高效率。
你可以通过其文档找到如何在你的工作流程中适当使用KitOps的资源,也可以了解更多关于KitOps的信息。
他们有 500 多个星标在 GitHub(https://github.com/jozu-ai/kitops)上,并且社区还在不断壮大。
GitHub 上给 KitOps ⭐️点个星
就是这样!我主要介绍了一些对Python和JavaScript开发者有用的工具。如果你还知道其他超棒的工具,不妨在评论区分享一下!
希望这篇文章对你有帮助。如果觉得有用,欢迎分享给你的开发者朋友们吧!
同时,关注我 了解更多这样的内容:
Arindam Majumder 关注一下开发人员倡导者 | 技术作者 | 40万+ 阅读量 | Mail for Coll
如有付费合作需求,请邮件联系我:arindammajumder2020@gmail.com。
读到这里,谢谢你!
如图所示,点击链接查看GIF图。