Nano Hash - криптовалюты, майнинг, программирование

Как очистить и сохранить диаграммы с веб-сайта, когда точки данных являются динамическими в HTML

Есть ли способ очистить данные из этой диаграммы, используя библиотеки Python, такие как bs4 или запросы?

Я попытался просмотреть исходные данные веб-сайта, но нигде в HTML не вижу точек данных.

Я видел одну переменную, которая меняется, когда я двигаю мышью по диаграмме, но я понятия не имею, как это работает.

https://infogram.com/world-container-index-1h17493095xl4zj

Любые идеи о том, как я могу загрузить и сохранить эти точки данных?


Ответы:


1

Я могу извлечь текст script, заполняющий диаграмму, и преобразовать его в формат json.

final_data содержит данные в формате json. Я думаю, теперь вы можете извлечь все, что вам нужно.

Вот Кодекс.

import requests
from bs4 import BeautifulSoup
import json

url = "https://infogram.com/world-container-index-1h17493095xl4zj"
resp = requests.get(url)
html = resp.text


soup = BeautifulSoup(html, features="html.parser")

s = soup.findAll('script')
main_script = None

for i in range(len(s)):
    if s[i].contents:
        if 'window.infographicData' in s[i].contents[0]:
            main_script = s[i].contents[0]
            break


main_script = main_script.lstrip('window.infographicData=')
main_script = main_script.rstrip(';')

final_data = json.loads(main_script)


23.06.2021
  • как бы вы извлекли данные из этого, форматирование выглядит таким странным 23.06.2021
  • @anarchy Смотрите мой обновленный ответ 23.06.2021
  • могу я спросить, как вы нашли скрипт и window.inforaphicData? 23.06.2021
  • если вы посмотрите здесь en.macromicro.me/charts/947/commodity-ccfi- scfi я не могу найти аналогичную информацию для извлечения этого 23.06.2021
  • @anarchy Все сайты разные. Вы должны посмотреть, присутствуют ли ваши данные в самом HTML-коде (или) заполняются ли они Javascript (или) поступают ли они из API. Например, этот сайт: en.macromicro.me/charts/947/commodity-ccfi -scfi получает данные из API. 23.06.2021
  • есть ли способ извлечь это? 23.06.2021
  • Да. Вы можете напрямую сделать запрос GET к API, используя модуль requests, и извлечь данные. 23.06.2021
  • stackoverflow.com/questions/68094929/ я разместил еще один вопрос, если вы хотите проверить его для этого 23.06.2021

  • 2

    Вы можете найти все данные в скрипте balise в конце: строка 3794.

    23.06.2021
  • Извините, я не понимаю, что это за часть? 23.06.2021
  • Все данные находятся в конце источника, вы должны выполнить поиск: window.infographicData={ Итак, вы должны написать что-то вроде: if '{infographicData' в script.text: Посмотрите на этот вопрос, есть пример, как извлечь данные : stackoverflow.com/questions/48030726/ 23.06.2021
  • Новые материалы

    Кластеризация: более глубокий взгляд
    Кластеризация — это метод обучения без учителя, в котором мы пытаемся найти группы в наборе данных на основе некоторых известных или неизвестных свойств, которые могут существовать. Независимо от..

    Как написать эффективное резюме
    Предложения по дизайну и макету, чтобы представить себя профессионально Вам не позвонили на собеседование после того, как вы несколько раз подали заявку на работу своей мечты? У вас может..

    Частный метод Python: улучшение инкапсуляции и безопасности
    Введение Python — универсальный и мощный язык программирования, известный своей простотой и удобством использования. Одной из ключевых особенностей, отличающих Python от других языков, является..

    Как я автоматизирую тестирование с помощью Jest
    Шутка для победы, когда дело касается автоматизации тестирования Одной очень важной частью разработки программного обеспечения является автоматизация тестирования, поскольку она создает..

    Работа с векторными символическими архитектурами, часть 4 (искусственный интеллект)
    Hyperseed: неконтролируемое обучение с векторными символическими архитектурами (arXiv) Автор: Евгений Осипов , Сачин Кахавала , Диланта Хапутантри , Тимал Кемпития , Дасвин Де Сильва ,..

    Понимание расстояния Вассерштейна: мощная метрика в машинном обучении
    В обширной области машинного обучения часто возникает необходимость сравнивать и измерять различия между распределениями вероятностей. Традиционные метрики расстояния, такие как евклидово..

    Обеспечение масштабируемости LLM: облачный анализ с помощью AWS Fargate и Copilot
    В динамичной области искусственного интеллекта все большее распространение получают модели больших языков (LLM). Они жизненно важны для различных приложений, таких как интеллектуальные..