Я пытаюсь извлечь данные из общедоступной информационной панели Tableau (открытая чековая книжка системы ASU), но данные таблицы отображаются как изображения больших двоичных объектов, а не как HTML-текст, что делает традиционный веб-сбор невозможным.
Что я пробовал
Я успешно:
- Определил прокрутку механизм (с верхним позиционированием)
Код: Выделить всё
.tvimagesContainer - Реализована прокрутка в представлении Tableau
- Найден контейнер данных высотой: 104599 пикселей
Код: Выделить всё
# Scrolling works fine - I can navigate through the data
def scroll_tableau_by_position(self, pixels_down=500):
current_top = self.driver.execute_script(
"return parseInt(arguments[0].style.top) || 0;",
self.images_container
)
new_top = current_top - pixels_down
self.driver.execute_script(
"arguments[0].style.top = arguments[1] + 'px';",
self.images_container, new_top
)
# Text extraction fails - no text in DOM!
def extract_tableau_data_advanced(self):
all_text = self.driver.execute_script("""
// TreeWalker finds nothing because data is in blob images
var walker = document.createTreeWalker(
element,
NodeFilter.SHOW_TEXT,
null,
false
);
// Returns empty - text is rendered as pixels in images
""")
Когда я просматриваю страницу, я вижу:
Код: Выделить всё
[img]blob:https://public.tableau.com/814d93c9-62eb-4a4d-aa44-f62bb6ca1491[/img]
[img]blob:https://public.tableau.com/78c83f48-7194-4e4f-9007-ce71778bff94[/img]
Что мне нужно
Как я могу извлечь фактические данные из этой визуализации Tableau?
Я рассмотрел:
- OCR на скриншотах – работает, но очень медленно и подвержено ошибкам.
- Кнопка загрузки Tableau – ее невозможно найти или она отключена на этой общедоступной информационной панели.
- Конечная точка API/данных – не уверен, предоставляет ли Tableau Public конечные точки данных.
Каков стандартный/лучший подход к очистке данных из общедоступных информационных панелей Tableau, когда данные отображаются в виде BLOB-изображений?
- Есть ли способ получить доступ к базовому API данных Tableau?
- Могу ли я перехватывать сетевые запросы, которые получить данные плитки?
- Есть ли скрытая опция экспорта/загрузки, которую мне не хватает?
- Должен ли я вместо этого использовать официальный API Tableau?
- Python 3.x
- Selenium + undetected_chromedriver
- Цель: https://public.tableau.com/app/profile/ ... kbook/Main
Подробнее здесь: https://stackoverflow.com/questions/798 ... lob-images
Мобильная версия