Как очистить значение атрибута «стиль» во Flutter/Dart

Я пытаюсь очистить данные с веб-страницы. Я хотел, чтобы 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');

}

Консоль:

Стоит ли изучать PHP в 2023-2024 годах?
Стоит ли изучать PHP в 2023-2024 годах?
Привет всем, сегодня я хочу высказать свои соображения по поводу вопроса, который я уже много раз получал в своем сообществе: "Стоит ли изучать PHP в...
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
В JavaScript одним из самых запутанных понятий является поведение ключевого слова "this" в стрелочной и обычной функциях.
Приемы CSS-макетирования - floats и Flexbox
Приемы CSS-макетирования - floats и Flexbox
Здравствуйте, друзья-студенты! Готовы совершенствовать свои навыки веб-дизайна? Сегодня в нашем путешествии мы рассмотрим приемы CSS-верстки - в...
Тестирование функциональных ngrx-эффектов в Angular 16 с помощью Jest
В системе управления состояниями ngrx, совместимой с Angular 16, появились функциональные эффекты. Это здорово и делает код определенно легче для...
Концепция локализации и ее применение в приложениях React ⚡️
Концепция локализации и ее применение в приложениях React ⚡️
Локализация - это процесс адаптации приложения к различным языкам и культурным требованиям. Это позволяет пользователям получить опыт, соответствующий...
Пользовательский скаляр GraphQL
Пользовательский скаляр GraphQL
Листовые узлы системы типов GraphQL называются скалярами. Достигнув скалярного типа, невозможно спуститься дальше по иерархии типов. Скалярный тип...
1
0
538
1
Перейти к ответу Данный вопрос помечен как решенный

Ответы 1

Ответ принят как подходящий

Атрибут style изначально не имеет значения. Значение задается JS при рендеринге страницы. Вместо этого вы можете попробовать очистить @data-bg:

imgUrls = imgUrl.map((element) => element.attributes['data-bg']).toList();

Спасибо! это сработало. Но не могли бы вы немного объяснить атрибут «data-bg», потому что я не вижу такого атрибута. Извините, я нуб, поэтому, пожалуйста, не обращайте внимания на мой вопрос. Спасибо.

Faisal Shahzad 18.12.2020 16:46

@FaisalShahzad Когда вы проводите расследование, я думаю, вы используете DOM Inspector (F12) и видите элементы и атрибуты уже отрендеренной веб-страницы. Но обратите внимание, что когда вы делаете запрос с помощью http-tool, вы получаете исходную страницу в чистом HTML (еще не выполняется JavaScript). Чтобы увидеть этот HTML, вам нужно сделать правый клик на веб-странице в браузере -> «Просмотреть исходный код страницы». Там вы можете найти @data-bg, который содержит требуемое значение URL.

JaSON 18.12.2020 16:52

Привет, надеюсь, у тебя все отлично. Решение, которое вы мне дали, больше не работает. Я понятия не имею, что произошло, но теперь атрибут «data-bg» не отображается в «Просмотр исходного кода страницы», а также приложение выдает нулевую ошибку, потому что оно не может найти URL-адреса для «data-bg». Я надеюсь, что и на этот раз у вас было решение для меня. Или можно анализировать URL-адреса из загруженного тега стиля JavaScript. Так что мне не нужно снова беспокоиться об этом. Спасибо.

Faisal Shahzad 05.02.2021 22:02

@FaisalShahzad да, теперь @style перемещен непосредственно в элемент HTML, поэтому ваш первоначальный подход должен работать

JaSON 08.02.2021 09:44

Другие вопросы по теме