Я пытаюсь очистить данные с веб-страницы. Я хотел, чтобы URL-адрес присутствовал внутри атрибута стиля (как отмечено на картинке)
До сих пор я пробовал его, но он возвращает мне пустые строки
import 'dart:convert';
import 'package:html/dom.dart' as dom;
import 'package:html/parser.dart' as parser;
import 'package:http/http.dart' as http;
Future initiate() async {
final response = await http.get('https://pixxelprecision.co.uk/portfolio');
dom.Document document = parser.parse(response.body);
final imgUrl = document.getElementsByClassName('w-ibanner-image');
imgUrls = imgUrl.map((element) => element.attributes['style']).toList();
print('URLs: $imgUrls');
}
Консоль:
Атрибут style
изначально не имеет значения. Значение задается JS при рендеринге страницы. Вместо этого вы можете попробовать очистить @data-bg
:
imgUrls = imgUrl.map((element) => element.attributes['data-bg']).toList();
@FaisalShahzad Когда вы проводите расследование, я думаю, вы используете DOM Inspector (F12) и видите элементы и атрибуты уже отрендеренной веб-страницы. Но обратите внимание, что когда вы делаете запрос с помощью http
-tool, вы получаете исходную страницу в чистом HTML (еще не выполняется JavaScript). Чтобы увидеть этот HTML, вам нужно сделать правый клик на веб-странице в браузере -> «Просмотреть исходный код страницы». Там вы можете найти @data-bg
, который содержит требуемое значение URL.
Привет, надеюсь, у тебя все отлично. Решение, которое вы мне дали, больше не работает. Я понятия не имею, что произошло, но теперь атрибут «data-bg» не отображается в «Просмотр исходного кода страницы», а также приложение выдает нулевую ошибку, потому что оно не может найти URL-адреса для «data-bg». Я надеюсь, что и на этот раз у вас было решение для меня. Или можно анализировать URL-адреса из загруженного тега стиля JavaScript. Так что мне не нужно снова беспокоиться об этом. Спасибо.
@FaisalShahzad да, теперь @style
перемещен непосредственно в элемент HTML, поэтому ваш первоначальный подход должен работать
Спасибо! это сработало. Но не могли бы вы немного объяснить атрибут «data-bg», потому что я не вижу такого атрибута. Извините, я нуб, поэтому, пожалуйста, не обращайте внимания на мой вопрос. Спасибо.