首页 > 后端开发 > Golang > Fitter - 开源无代码工具,用于映射减少来自不同来源甚至更多的数据!

Fitter - 开源无代码工具,用于映射减少来自不同来源甚至更多的数据!

Barbara Streisand
发布: 2024-10-31 20:21:02
原创
983 人浏览过

大家好!

我是 Pxyup,今天我想通过开源项目 Fitter 代表您。

Fitter - Open Source no-code tool for map-reduce data from different source and even more! 像素向上 / 钳工

从 API/网站收集信息的新方法

Fitter Fitter CLI

Fitter - 从 API/网站收集信息的新方法

Fitter CLI - 小型 cli 命令,提供 Fitter 的结果以供测试/调试/家庭使用

Fitter Lib - 作为库提供 fitter CLI 功能的库

Fitter - Open Source no-code tool for map-reduce data from different source and even more!

信息收集方式

  1. 服务器 - 解析来自某些 API 或 http 请求的响应(使用 http.Client)
  2. 浏览器 - 使用 chromium docker playwright/cypress 模拟真实浏览器并获取 DOM 信息
  3. 静态 - 将静态字符串解析为数据

可解析的格式

  1. JSON - 解析 JSON 以获取特定信息
  2. XML - 解析 xml 树以获取特定信息
  3. HTML - 解析 dom 树以获取特定信息
  4. XPath - 解析 dom 树以获取特定信息,但通过 xpath

像图书馆一样使用

go get github.com/PxyUp/fitter
登录后复制
登录后复制
登录后复制
登录后复制
进入全屏模式 退出全屏模式
go get github.com/PxyUp/fitter
登录后复制
登录后复制
登录后复制
登录后复制
进入全屏模式 退出全屏模式
在 GitHub 上查看

它是如何创建的

2023 年,我提出了一个名为 Trip Searcher 的想法:

go get github.com/PxyUp/fitter
登录后复制
登录后复制
登录后复制
登录后复制

旅行搜索器将监控航班并返回从出发城市出发的潜在路线,包括到各个目的地的总价格,并向 Telegram 发送通知:

package main
import (
    "fmt"
    "github.com/PxyUp/fitter/lib"
    "github.com/PxyUp/fitter/pkg/config"
    "log"
    "net/http"
)

func main() {
    res, err := lib.Parse
登录后复制
登录后复制

对于此设置,我需要一个国家、城市和机场代码列表来插入提到的网站。在开发过程中,我开始思考如果所有这些信息都可以轻松组合和解析以简化请求,那该有多方便,这引发了我称之为 Fitter 的项目的想法。

P.S.:该项目仅供个人使用。

装配工 CLI

无代码映射缩减器,以用户友好 (JSON) 或自定义格式返回数据,适合存储在数据库中或通过 HTTP 传输。

特点:

  1. 支持通过 HTML(查询)、JSON(gjson)、XML 和 xpath 解析器进行解析。
  2. 使用 Docker、Playwright(隐形模式)、HTTP 客户端、缓存、文件或传播字段,像浏览器一样检索数据,并支持自定义插件。
  3. 为 Playwright 和 HTTP 客户端提供代理支持。
  4. 可以通过插件将信息发送或存储到文件、webhook、控制台等。
  5. 处理所有数据类型:int、float、bool、array、object、null 和 string。
  6. 组合(map-reduce)并转换字段。
  7. 利用强大的 expr 库进行模板语法,该语法可在整个应用程序中使用。
  8. 作为独立的二进制文件和 Docker 版本提供。
  9. 允许限制浏览器/Docker 使用的请求计数或实例。

示例

静态生成:

这里我们将仅从硬编码生成静态数组

1.  You enter a budget.
2.  You specify a starting city or country.
3.  You set the trip duration and a range of possible start and end dates.
登录后复制
登录后复制
1.  Flight costs (parsed from Google or Kiwi).
2.  Hotel prices (from Airbnb or Booking).
3.  Food costs (retrieved from Numbeo).
登录后复制
登录后复制

获取当前时间

从网站获取信息并返回给用户。

./fitter_cli_v1.0.18-darwin-amd64 --url=https://raw.githubusercontent.com/PxyUp/fitter/refs/heads/master/examples/cli/config_static_connector.json
登录后复制
[
        "PAGE: 1 INDEX: 0",
        "PAGE: 2 INDEX: 1",
        "PAGE: 3 INDEX: 2",
        "PAGE: 4 INDEX: 3",
        "PAGE: 5 INDEX: 4"
]
登录后复制

获取当前 Steam 销量

这将在提供的目录中创建sales.md

从 HackerNews 评论列表中获取每个内容的最佳新闻

在此配置中,我们使用模板语法将第一个请求的结果传播到下一个请求。

go get github.com/PxyUp/fitter
登录后复制
登录后复制
登录后复制
登录后复制
package main
import (
    "fmt"
    "github.com/PxyUp/fitter/lib"
    "github.com/PxyUp/fitter/pkg/config"
    "log"
    "net/http"
)

func main() {
    res, err := lib.Parse
登录后复制
登录后复制

从网站上抓取所有图像并将其存储在本地

1.  You enter a budget.
2.  You specify a starting city or country.
3.  You set the trip duration and a range of possible start and end dates.
登录后复制
登录后复制
1.  Flight costs (parsed from Google or Kiwi).
2.  Hotel prices (from Airbnb or Booking).
3.  Food costs (retrieved from Numbeo).
登录后复制
登录后复制

钳工

Fitter 它是 Fitter CLI 的扩展版本,它具有:

  1. 触发器的Http服务器
  2. 以电报消息/webhook 的形式返回响应
  3. 目前还没有文档:)

用法

此工具可用于不同目的:

  1. 网页抓取工具
  2. 带有插件的数据抓取器
  3. 进行特定的负载测试
  4. 构建聊天机器人 - 我用它来自动化我的电报频道

例如这个工作每天都会发送最好的Dev.to文章:

计划
  1. 添加更多浏览器工具。比如点击/滚动(目前只能通过JS注入完成)
  2. 改进模板语法
  3. 添加自定义模板编辑器配置编辑器
  4. 可能会考虑使用 SASS 作为更适合的 CLI,为客户运行自定义工作流程并将结果返回到 APP/Watch/等。

真的等待您的反馈!有什么问题我都会问

以上是Fitter - 开源无代码工具,用于映射减少来自不同来源甚至更多的数据!的详细内容。更多信息请关注PHP中文网其他相关文章!

来源:dev.to
本站声明
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn
作者最新文章
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板