extractArticles method

List<Map<String, dynamic>> extractArticles(
  1. String html
)

Extracts all article information from the HTML

Implementation

List<Map<String, dynamic>> extractArticles(String html) {
  final articles = <Map<String, dynamic>>[];

  // Try to extract articles from JSON-LD
  final jsonLdResults = extractJsonLd(html);
  for (final result in jsonLdResults) {
    if (result.data['@type'] == 'Article' ||
        result.data['@type'] == 'NewsArticle' ||
        result.data['@type'] == 'BlogPosting' ||
        result.data['@type']?.toString().contains('Article') == true) {
      articles.add(result.data);
    }
  }

  // Try to extract articles from Microdata
  final microdataResults = extractMicrodata(html);
  for (final result in microdataResults) {
    if (result.data['@type']?.toString().contains('Article') == true) {
      articles.add(result.data);
    }
  }

  // Try to extract articles from RDFa
  final rdfaResults = extractRdfa(html);
  for (final result in rdfaResults) {
    if (result.data['@type']?.toString().contains('Article') == true) {
      articles.add(result.data);
    }
  }

  // Try to extract articles from Open Graph
  final ogResults = extractOpenGraph(html);
  for (final result in ogResults) {
    if (result.data['type'] == 'article') {
      articles.add(result.data);
    }
  }

  return articles;
}