Buscar pacotes, repositórios e categorias de apps

Detalhes do pacotev0.4.2

metadata_fetch

Uma biblioteca Dart para extração de metadados em páginas da web, como OpenGraph, Meta, Twitter Cards e Dados Estruturados (Json-LD)

AndroidiOSWebmacOSWindowsLinux
Downloads em 30 dias
25,8 mil
Curtidas
106
Pontos Pub
150

Instalar pacote

flutter pub add metadata_fetch

Visão geral do pacote

Orientação gerada a partir de informações públicas. Apenas para referência.

Uma biblioteca Dart projetada para extrair metadados de páginas da web, incluindo OpenGraph, tags meta padrão, Twitter Cards e dados estruturados JSON-LD. Permite que aplicativos recuperem programaticamente informações ricas sobre conteúdo, como títulos, descrições, imagens e outros detalhes importantes a partir de URLs. Ideal para aplicações que precisam pré-visualizar ou exibir conteúdo da web dinamicamente, como integradores de redes sociais, leitores de notícias ou compartilhadores de links. A biblioteca suporta múltiplas plataformas, garantindo comportamento consistente em Android, iOS, Web, macOS, Windows e Linux.

Casos de uso

  • Geração de visualização da página da web
  • Compartilhamento de links de mídia social
  • Web scraping para aplicativos de notícias
  • Exibição dinâmica de metadados em aplicativos
  • Análise de URL para ferramentas de SEO

Principais recursos

  • Suporta OpenGraph, Twitter Cards e JSON-LD
  • Extrai título, descrição, imagem e metadados personalizados
  • Compatibilidade multiplataforma
  • API simples para buscar e analisar
  • Tratamento robusto de HTML malformado

Indicado para

  • Aplicativos que precisam de pré-visualizações ricas de links
  • Desenvolvedores construindo agregadores de conteúdo
  • Ferramentas para análise de metadados de URL
  • Web scrapers multiplataforma

Considerações

  • Requer acesso à rede para buscar páginas remotas
  • Pode falhar em sites com medidas anti-scraping
  • Depende da estrutura HTML precisa
  • Não adequado para raspagem de alto volume sem limitação de taxa
  • A análise pode variar com marcação não padrão

README original

Snapshot do README original do repositório-fonte vinculado. Consulte o repositório para o conteúdo mais recente.

Metadata Fetch

A dart library for extracting metadata in web pages. Supports OpenGraph, Meta, Twitter Cards, and Structured Data (Json-LD)

Available on Pub Dev: Pub

Metadata Structure

Metadata:
  - title
  - description
  - image
  - url

Usage

Extract Metadata for a given URL
import 'package:metadata_fetch/metadata_fetch.dart';

main() async {
  final myURL = 'https://flutter.dev';

  // Use the `MetadataFetch.extract()` function to fetch data from the url
  var data = await MetadataFetch.extract(myURL); 

  print(data.title) // Flutter - Beautiful native apps in record time

  print(data.description) // Flutter is Google's UI toolkit for crafting beautiful...

  print(data.image) // https://flutter.dev/images/flutter-logo-sharing.png

  print(data.url) // https://flutter.dev/

  var dataAsMap = data.toMap();


}
Parsing Manually
Get aggregated Metadata from a document

This method prioritizes Open Graph data, followed by Twitter Card, JSON-LD and finally falls back to HTML metadata.

import 'package:metadata_fetch/metadata_fetch.dart';
import 'package:http/http.dart' as http;

void main () async {

  final myURL = 'https://flutter.dev';

  // makes a call
  var response = await http.get(myURL);

  // Convert Response to a Document. The utility function `MetadataFetch.responseToDocument` is provided or you can use own decoder/parser.
  var document = MetadataFetch.responseToDocument(response);


  // get aggregated metadata
  var data = MetadataParser.parse(document);
  print(data);


}

Manually specify which Metadata parser to use
import 'package:metadata_fetch/metadata_fetch.dart';
import 'package:http/http.dart' as http;

void main () async {

  final myURL = 'https://flutter.dev';

  // Makes a call
  var response = await http.get(myURL);

  // Convert Response to a Document. The utility function `responseToDocument` is provided or you can use own decoder/parser.
  var document = responseToDocument(response);


  // Get OpenGraph Metadata
  var ogData = MetadataParser.OpenGraph(document);
  print(ogData);

  // Get Html metadata
  var htmlData = MetadataParser.HtmlMeta(document);
  print(htmlData);

  // Get Structured Data
  var structuredData = MetadataParser.JsonLdSchema(document);
  print(structuredData);

  // Get Twitter Cards Data
  var  twitterCardData = MetadataParser.TwitterCard(document);
  print(twitterCardData);

}
Provide a fallback url when manually parsing

If the parsers cannot extract a URL from the document, you may optionally provide a URL in MetadataFetch.parse().

This URL will be added in the final Metadata structure, and is used to resolve images with relative URLs (non-absolute URLs).

import 'package:metadata_fetch/metadata_fetch.dart';
import 'package:http/http.dart' as http;

void main () async {

  final myURL = 'https://flutter.dev';

  // makes a call
  var response = await http.get(myURL);

  // Convert Response to a Document. The utility function `MetadataFetch.responseToDocument` is provided or you can use own decoder/parser.
  var document = MetadataFetch.responseToDocument(response);


  // get aggregated metadata, supplying a fallback URL
  // Used for images with relative URLs
  var data = MetadataParser.parse(document, url:myURL);
  print(data);

}

Credit

This library is inspired by open_graph_parser. However this one tries to be more general.

Roadmap

  • Weighted or Preferred Metadata. Can assign custom weights for each parser to provide a fallback priority sytem
  • Improve Documentation

Questions, Bugs, and Feature Requests

Please forward all queries about this project to the issue tracker.

Categorias

Dependências

Lista de dependências 3 itens

Repositório-fonte

Projetos que usam este pacote