Получить полный HTML-текст Div - PullRequest
0 голосов
/ 17 декабря 2018

Я пытаюсь разобрать HTML-страницу, и мне нужно получить полную div:

void printing() async {
   http.Response response = await http.get('https://stackoverflow.com/');// example

   Document document = parser.parse(response.body);

   var elent = document.getElementById('content') ;

   print(elent);

}

результат:

I/flutter ( 2336): <html div>

как я могу напечатать всеHTML элементы внутри div?

спасибо.

Ответы [ 2 ]

0 голосов
/ 17 декабря 2018

Мы пишем одновременно мне и Гюнтеру ^^

Как указал Гюнтер, вы можете использовать html пакета Dart.

В вашем pubspec.yaml вы можете импортировать его:

html: ^0.13.3+3

Импорт должен выглядеть так, если у вас есть ошибки в дублировании Text в dom.dart и widgets.dart.

import 'package:html/parser.dart' show parse;
import 'package:html/dom.dart' hide Text;

, а затем вы можете сделать попытку следующим образом:

void _printing() async {
    http.Response response =
        await http.get('https://stackoverflow.com/'); // example

    Document document = parse(response.body);

    var element = document.getElementById('content');

    debugPrint(element.querySelectorAll('div').toString());
  }

с помощью querySelectorAll вы получите все селекторы страницы:

enter image description here

И затем вы можете просмотреть все из них:

element.querySelectorAll('div').forEach((value) {
      debugPrint(value.outerHtml);
    });
0 голосов
/ 17 декабря 2018

Пакет https://pub.dartlang.org/packages/html позволяет запрашивать элементы, аналогичные тем, что вы можете делать в браузере (например, querySelectorAll()).

import 'package:html/parser.dart' show parse;
import 'package:html/dom.dart';

main() {
  var document = parse(
      '<body>Hello world! <a href="www.html5rocks.com">HTML5 rocks!');
  print(document.outerHtml);
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...