Maison >développement back-end >Golang >Fitter - Outil open source sans code pour réduire les données de différentes sources et bien plus encore !

Fitter - Outil open source sans code pour réduire les données de différentes sources et bien plus encore !

Barbara Streisand
Barbara Streisandoriginal
2024-10-31 20:21:02983parcourir

Bonjour à tous!

Je m'appelle Pxyup et aujourd'hui je veux représenter pour vous le projet open source Fitter.

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

Nouvelle façon de collecter des informations à partir des API/sites Web

CLI Monteur Monteur

Fitter - nouvelle façon de collecter des informations à partir des API/sites Web

Fitter CLI - petite commande cli qui fournit le résultat de Fitter pour une utilisation test/débogage/maison

Fitter Lib - bibliothèque qui fournit les fonctionnalités de Fitter CLI en tant que bibliothèque

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

Moyen de collecter des informations

  1. Serveur - analyse de la réponse de certaines API ou requête http (utilisation de http.Client)
  2. Navigateur - émulez un vrai navigateur à l'aide du dramaturge/cyprès Chrome Docker et obtenez des informations DOM
  3. Statique - analyse d'une chaîne statique en tant que données

Format pouvant être analysé

  1. JSON - analyser JSON pour obtenir des informations spécifiques
  2. XML - analyse de l'arborescence XML pour obtenir des informations spécifiques
  3. HTML - analyse de l'arbre dom pour obtenir des informations spécifiques
  4. XPath - analyse de l'arbre dom pour obtenir des informations spécifiques mais par XPath

Utiliser comme une bibliothèque

go get github.com/PxyUp/fitter
Entrez en mode plein écran Quitter le mode plein écran
go get github.com/PxyUp/fitter
Entrez en mode plein écran Quitter le mode plein écran
Voir sur GitHub

Comment il a été créé

En 2023, j'ai travaillé sur une idée appelée Trip Searcher :

go get github.com/PxyUp/fitter

Le Trip Searcher surveillerait les vols et renverrait les itinéraires potentiels depuis la ville de départ, y compris les prix totaux vers diverses destinations, et enverrait des notifications à Telegram avec :

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

func main() {
    res, err := lib.Parse

Pour cette configuration, j'avais besoin d'une liste de pays, de villes et de codes d'aéroport à connecter aux sites mentionnés. Pendant le développement, j'ai commencé à réfléchir à combien il serait pratique si toutes ces informations pouvaient être facilement combinées et analysées pour rationaliser les demandes, ce qui a conduit à l'idée d'un projet que j'appelle Fitter.

P.S. : Ce projet était destiné à un usage personnel.

CLI installateur

Un map-reducer sans code qui renvoie les données dans des formats conviviaux (JSON) ou personnalisés, adaptés au stockage dans une base de données ou à la transmission via HTTP.

Caractéristiques :

  1. Prend en charge l'analyse via les analyseurs HTML (requête), JSON (gjson), XML et XPath.
  2. Récupère les données comme le ferait un navigateur, à l'aide de Docker, Playwright (mode furtif), du client HTTP, du cache, du fichier ou des champs propagés, avec prise en charge des plugins personnalisés.
  3. Fournit une prise en charge proxy pour les clients Playwright et HTTP.
  4. Peut envoyer ou stocker des informations vers un fichier, un webhook, une console, etc. via des plugins.
  5. Gère tous les types de données : int, float, bool, array, object, null et string.
  6. Combine (map-reduce) et transforme les champs.
  7. Utilise la puissante bibliothèque expr pour la syntaxe des modèles, disponible dans toute l'application.
  8. Offert en version binaire autonome et Docker.
  9. Permet de limiter le nombre de requêtes ou d'instances pour l'utilisation du navigateur/Docker.

Exemples

Génération statique :

Ici, nous allons simplement générer un tableau statique à partir du code en dur

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).

Obtenir l'heure actuelle

Obtenir des informations sur le site Web et les renvoyer à l'utilisateur.

./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"
]

Obtenez les ventes Steam actuelles

Cela créera sales.md

dans le répertoire fourni

Recevez les meilleures nouvelles de HackerNews. Liste de commentaires pour chacun

Dans cette configuration, nous utilisons la syntaxe du modèle pour propager le résultat de la première requête à la suivante.

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

Grattez toutes les images du site Web et stockez-les localement

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).

Installateur

Fitter c'est une version étendue de la CLI Fitter qui a :

  1. Serveur HTTP pour déclencheur
  2. Renvoyer la réponse sous forme de message télégramme/webhook
  3. Et qui n'avait actuellement pas de documentation :)

Usage

Ces outils peuvent être utilisés à différentes fins :

  1. Scracker Web
  2. Récupérateur de données avec plugins
  3. Produire des tests de charge spécifiques
  4. Créez des chatbots - je l'utilise pour automatiser ma chaîne de télégramme

Par exemple, ce travail envoie chaque jour les meilleurs articles Dev.to :

Forfaits
  1. Ajoutez plus d'outils de navigation. Comme cliquer/faire défiler (actuellement, cela ne peut être fait que par injection JS)
  2. Améliorer la syntaxe du modèle
  3. Ajouter un éditeur de configuration d'éditeur de modèles personnalisés
  4. Peut-être penserons-nous à SASS pour une CLI plus adaptée pour exécuter un flux de travail personnalisé pour les clients et renvoyer le résultat à APP/Watch/etc.

Attendez vraiment vos retours ! Posez n'importe quelle question que je poserai

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn