Форум программистов, компьютерный форум, киберфорум
Python: Web
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 5.00/9: Рейтинг темы: голосов - 9, средняя оценка - 5.00
8 / 6 / 2
Регистрация: 29.08.2022
Сообщений: 54

Парсинг сайтов с динамическими данными

29.08.2022, 12:35. Показов 2330. Ответов 12
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Всем привет

Два дня мучаюсь над одной проблемой, не могу решить и все, перерыл кучу информации, результат около нуля

Задача: Нужно содрать данные с одного сайт, данные эти обновляются каждую секунду
например
https://www.boerse-frankfurt.de/index/dax
котировка индекса DAX в середине страницы справа от графика

текст страницы получаю через requests.get(url)

беда в том что обновляемые данные не попадают, похоже не успевают запустить скрипты


как получить эти данные, дайте пару советов
через браузер они скачиваются нормально, сейчас изучаю селениум, я так понял что она мне может помочь, но каждый раз будет открываться браузер, это очень долго и затратно.
я новичок, только познаю питон, поэтому сильно не ругайте
Спасибо всем кто откликнулся.
0
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
29.08.2022, 12:35
Ответы с готовыми решениями:

Парсинг страниц с динамическими данными
Добрый день, форумчане. Возникла необходимость получения некоторых данных со стороннего сайта для анализа и последующей обработки....

Автоматическое заполнение ячеек данными, взятыми из одной ячейки с динамическими данными
Добрый день! Подскажите, есть ли решение моей задачи: В одной и той же ячейке постоянно (ежесекундно) меняется число (данные...

Шаблон с динамическими данными из MSSQL
Всем привет, Не уверен, что пишу в правилном разделе, за что прошу силно не "пинать" :). Вопрос состоит в следующем:...

12
8 / 6 / 2
Регистрация: 29.08.2022
Сообщений: 54
29.08.2022, 19:52  [ТС]
В общем решил что буду пробовать через selenium и PhantomJS
но столкнулся с проблемой

код вот такой

from selenium import webdriver написал самой первой строчкой в коде

driver = webdriver.PhantomJS()

Ошибка вот такая
driver = webdriver.PhantomJS()
AttributeError: module 'selenium.webdriver' has no attribute 'PhantomJS'
в списке есть хромы, ие и прочие, phantomjs нету

selenium и PhantomJS устанавливал
pip install selenium
pip install phantomjs


что я не доустановил? хелп плиз
0
148 / 111 / 37
Регистрация: 28.11.2013
Сообщений: 383
30.08.2022, 19:11
Можно попробовать requests_html для обработки js скриптов, но не всегда работает. Но render страницы будет долгим как в селениуме. Что касается ваших данных, то у меня получилось так:
Кликните здесь для просмотра всего текста

Python
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
import requests
import lxml
from bs4 import BeautifulSoup
import json
 
headers = {
    'authority': 'api.boerse-frankfurt.de',
    'accept': 'application/json, text/plain, */*',
    'accept-language': 'ru-RU,ru;q=0.9,en-US;q=0.8,en;q=0.7',
    'client-date': '2022-08-29T20:11:34.358Z',
    'origin': 'https://www.boerse-frankfurt.de',
    'referer': 'https://www.boerse-frankfurt.de/',
    'sec-ch-ua': '"Chromium";v="104", " Not A;Brand";v="99", "Google Chrome";v="104"',
    'sec-ch-ua-mobile': '?1',
    'sec-ch-ua-platform': '"Android"',
    'sec-fetch-dest': 'empty',
    'sec-fetch-mode': 'cors',
    'sec-fetch-site': 'same-site',
    'user-agent': 'Mozilla/5.0 (Linux; Android 6.0; Nexus 5 Build/MRA58N) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/104.0.0.0 Mobile Safari/537.36',
    'x-client-traceid': '79a81fe3b24f7c4be16068bad0b63825',
    'x-security': '33db81ccfd2bd47514906a1b1df54e28',
}
 
params = {
    'resolution': 'D',
    'isKeepResolutionForLatestWeeksIfPossible': 'false',
    'from': '1630095094',
    'to': '1661803894',
    'isBidAskPrice': 'false',
    'symbols': 'XETR:DE0008469008',
}
 
response = requests.get('https://api.boerse-frankfurt.de/v1/tradingview/lightweight/history/single', params=params, headers=headers)
 
json_data = response.text
json_data = json.loads(json_data)
 
time_pairs = json_data[0]['quotes']['timeValuePairs']
find_time_cell = 1661724000
 
for pair in time_pairs:
    if pair['time'] == find_time_cell:
        print(pair['value'])


Добавлено через 7 минут
У меня requestами не всё удалось найти, догадываюсь, что часть данных вычисляется скриптами, а не посылается с сервера.
1
8 / 6 / 2
Регистрация: 29.08.2022
Сообщений: 54
30.08.2022, 21:43  [ТС]
Спасибо что откликнулся на мою проблему, но видимо я не корректно объяснил свою задачу

Исходя из вашего когда я понял что код формирует запрос к API и уже апи формирует таблицу
мне же нужно именно спарсить страницу и извлечь из нее данные, они формируются без api

[attach]https://www.cyberforum.ru/attachment.php?attachmentid=1365250&stc= 1&d=1661884287[/attach]

я попробовал через render, но у меня ошибка и не могу с ней справиться

Python
1
2
3
4
5
6
7
8
9
10
from requests_html import HTMLSession
 
# эксперименты
@bot.message_handler(commands=['x'])
def x(message):
    bot.send_message(message.chat.id, 'начало эксперимента:')
    session = HTMLSession()
    r = session.get('https://www.boerse-frankfurt.de/index/dax')
    r.html.render()
    bot.send_message(message.chat.id, 'конец эксперимента:')
когда пишу r.html. не показывает что есть метод render, я пишу бот для телеги, подозреваю что нельзя render использовать в @bot.message_handler

как все таки через рендер попробовать?
Миниатюры
Парсинг сайтов с динамическими данными  
0
8 / 6 / 2
Регистрация: 29.08.2022
Сообщений: 54
05.09.2022, 00:04  [ТС]
А какие еще варианты спарсить сайт с JS есть?
Seleniumу не все серваки доступ дают
0
 Аватар для supmener
87 / 95 / 15
Регистрация: 26.06.2013
Сообщений: 4,755
08.09.2022, 17:30
Цитата Сообщение от bzda Посмотреть сообщение
Seleniumу не все серваки доступ дают
А как они определяют, кому давать, а кому нет?

Добавлено через 56 секунд
Имею в виду, если использовать fake модули.
0
8 / 6 / 2
Регистрация: 29.08.2022
Сообщений: 54
08.09.2022, 22:23  [ТС]
supmener, не знаю, предположил просто
0
Эксперт .NET
 Аватар для Usaga
14314 / 9400 / 1355
Регистрация: 21.01.2016
Сообщений: 35,450
09.09.2022, 03:34
Цитата Сообщение от bzda Посмотреть сообщение
Seleniumу не все серваки доступ дают
И вас не беспокоит тот факт, что селениум - просто библиотека-драйвер для управления самым обычным браузером? Вы с таким же успехом можете сказать, что серваки не дают доступ питону.
0
8 / 6 / 2
Регистрация: 29.08.2022
Сообщений: 54
09.09.2022, 19:08  [ТС]
Usaga, через селениум в хроме открывал один сайт - так он ругнулся и спарсилась только сообщение эксесс денайд

исходя из это го предположил что как то отслеживают через что доступ
0
Эксперт .NET
 Аватар для Usaga
14314 / 9400 / 1355
Регистрация: 21.01.2016
Сообщений: 35,450
10.09.2022, 03:44
bzda, предположение ошибочное.
0
8 / 6 / 2
Регистрация: 29.08.2022
Сообщений: 54
24.01.2023, 21:32  [ТС]
Цитата Сообщение от Skryp Посмотреть сообщение
Можно попробовать requests_html для обработки js скриптов, но не всегда работает. Но render страницы будет долгим как в селениуме. Что касается ваших данных, то у меня получилось так:
Кликните здесь для просмотра всего текста
Добавлено через 7 минут
У меня requestами не всё удалось найти, догадываюсь, что часть данных вычисляется скриптами, а не посылается с сервера.
Не мог бы ты в двух словах подсказать откуда взял данные для хидерс и парамс
Я в хроме в дев консоли смотрел запросы, ничего подобного не нашел
Или где и что почитать для изучения данной проблемы?
0
148 / 111 / 37
Регистрация: 28.11.2013
Сообщений: 383
26.01.2023, 00:22
Какой конкретно запрос я отловил тогда, я уже не помню, но алгоритм действий такой:
1) копируем данные запроса как curl
2) Гуглим :"curl to python"
3) Вставляем код и копируем python со всеми запросами, нажав на кнопку "copy to clipboard".
Миниатюры
Парсинг сайтов с динамическими данными   Парсинг сайтов с динамическими данными  
1
8 / 6 / 2
Регистрация: 29.08.2022
Сообщений: 54
26.01.2023, 13:26  [ТС]
блин, я думал как то в автомате это можно сделать, а тут получается нужно нужно выбрать из кучи запросов нужный и его уже колупать, да еще нужный запрос происходит с задержкой

вообще у меня был план такой

через селениум заходим на по ссылке, от селениума получаем лог с запросом
далее его сохраняем
потом уже делаем запрос и изучаем данные которые пришли по нему
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
26.01.2023, 13:26
Помогаю со студенческими работами здесь

График QChart с динамическими данными
Подскажите, пожалуйста, что я делаю не так :wall: { ui->setupUi(this); // Создаём объект серии данных, // который...

Как сравнить таблицы с динамическими данными
Здравствуйте, дорогие эксель эксперты! Имеется таблица, во второй(я её ещё не сделал) данные могут измениться(должны), кроме имени и...

Создание кастомного календаря с динамическими данными
Раз с одной проблемой мне тут помогли, значит попробую еще раз может и тут мне чем то помогут (: В общем проблема состоит в том что есть...

Обмен данными между двумя динамическими массивами
Написать программу обмена данными между двумя динамическими массивами

Работа с динамическими данными. Исключение элементов из списка.
Необходимо исключить из списка элементы, относящиеся к учащимся у которых одна оценка 4, а остальные 5. Распечатать оставшийся список....


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
13
Ответ Создать тему
Новые блоги и статьи
Контроль заполнения и очистка дат в зависимости от значения перечислений
Maks 12.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "ПланированиеПерсонала", разработанного в конфигурации КА2. Задача: реализовать контроль корректности заполнения дат назначения. . .
Архитектура слоя интернета для сервера-слоя.
Hrethgir 11.04.2026
В продолжение https:/ / www. cyberforum. ru/ blogs/ 223907/ 10860. html Знаешь что я подумал? Раз мы все источники пишем в голове ветки, то ничего не мешает добавить в голову такой источник, который сам. . .
Подстановка значения реквизита справочника в табличную часть документа
Maks 10.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "ПланированиеПерсонала", разработанного в конфигурации КА2. Задача: при выборе сотрудника (справочник Сотрудники) в ТЧ документа. . .
Очистка реквизитов документа при копировании
Maks 09.04.2026
Алгоритм из решения ниже применим как для типовых, так и для нетиповых документов на самых различных конфигурациях. Задача: при копировании документа очищать определенные реквизиты и табличную. . .
модель ЗдравоСохранения 8. Подготовка к разному выполнению заданий
anaschu 08.04.2026
https:/ / github. com/ shumilovas/ med2. git main ветка * содержимое блока дэлэй из старой модели теперь внутри зайца новой модели 8ATzM_2aurI
Блокировка документа от изменений, если он открыт у другого пользователя
Maks 08.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа, разработанного в конфигурации КА2. Задача: запретить редактирование документа, если он открыт у другого пользователя. / / . . .
Система безопасности+живучести для сервера-слоя интернета (сети). Двойная привязка.
Hrethgir 08.04.2026
Далее были размышления о системе безопасности. Сообщения с наклонным текстом - мои. А как нам будет можно проверить, что ссылка наша, а не подделана хулиганами, которая выбросит на другую ветку и. . .
Модель ЗдрввоСохранения 7: больше работников, больше ресурсов.
anaschu 08.04.2026
работников и заданий может быть сколько угодно, но настроено всё так, что используется пока что только 20% kYBz3eJf3jQ
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru