scrapeAffectedLines static method

Future<List<String?>> scrapeAffectedLines(
  1. RssItem rssItem
)

Implementation

static Future<List<String?>> scrapeAffectedLines(RssItem rssItem) async {
  try {
    final body = await get(Uri.parse(rssItem.link!));
    if (body.statusCode != 200) {
      throw HttpException(
          'Failed to scrape warning description, ${body.statusCode}');
    }
    final parser = parse(utf8.decode(body.bodyBytes));
    List<Element> results =
        parser.getElementsByClassName('avisos-container-lines-body');
    List<String> lines = [];
    for (var value in results) {
      for (var element in parse(value.innerHtml).getElementsByTagName('a')) {
        if (element.text.isNotEmpty) {
          lines.add(element.text.trim());
        }
      }
    }

    return lines;
  } catch (e) {
    throw Exception('Failed to scrape affected lines');
  }
}