Парсинг динамичных данных

SkyWay

Новичок
Регистрация
02.01.2016
Сообщения
12
Благодарностей
0
Баллы
1
Здравствуйте!
Прошу помощи у знающих людей, не могу понять как парсить данные из всплывающих подсказок при наведении курсора.
в DOM этих данных нет, сделать эмуляцию движения курсора в проекте насколько я знаю тоже нельзя, только клик.

Как можно это решить?
Благодарю.
 

AlexPetrov

Новичок
Регистрация
28.02.2020
Сообщения
28
Благодарностей
15
Баллы
3
Смотреть в мониторе трафика, какой запрос отправляется в момент появления данных, и пытаться его повторить с нужными данными
 

SkyWay

Новичок
Регистрация
02.01.2016
Сообщения
12
Благодарностей
0
Баллы
1
Смотреть в мониторе трафика, какой запрос отправляется в момент появления данных, и пытаться его повторить с нужными данными
Благодарю за ответ! Подскажите где смотреть монитор трафика?
 

AlexPetrov

Новичок
Регистрация
28.02.2020
Сообщения
28
Благодарностей
15
Баллы
3

SkyWay

Новичок
Регистрация
02.01.2016
Сообщения
12
Благодарностей
0
Баллы
1

AlexPetrov

Новичок
Регистрация
28.02.2020
Сообщения
28
Благодарностей
15
Баллы
3

SkyWay

Новичок
Регистрация
02.01.2016
Сообщения
12
Благодарностей
0
Баллы
1
Значит данные уже есть на странице. Возможно закодированы. Внимательно смотрите в код
Данные уже подгружены, нашел в "свойствах элемента" JS POPUP, теперь ломаю голову как их от туда связать с проектом?
 

Phoenix78

Client
Read only
Регистрация
06.11.2018
Сообщения
11 790
Благодарностей
5 690
Баллы
113
сделать эмуляцию движения курсора в проекте насколько я знаю тоже нельзя, только клик.
можно. не отличишь от реальной мыши. методы FullEmulation

52065


так же в хроме в DevTools можно отследить где меняется страница при всплывающей подсказке, и на тот элемент поставить брейкпоинт и пошагово выполнить скрипт до момента появления нужных данных. ну и подсмотреть структуру откуда парсить.
52066


вот я поменял текст в посте. и сработал брейк поинт
52067
 
Последнее редактирование:
  • Спасибо
Реакции: andrey-ka и Astraport

SkyWay

Новичок
Регистрация
02.01.2016
Сообщения
12
Благодарностей
0
Баллы
1
можно. не отличишь от реальной мыши. методы FullEmulation

Посмотреть вложение 52065
Благодарю! Уже есть результаты в проекте.

Но также появились другие вопросы.

В теме по FullEmulationMouse (https://zennolab.com/discussion/threads/snippety-ehmuljacii-myshi-fullemulationmouse.35369/) нашел готовый вариант C# и немного его изменил под себя:

C#:
//Находим элемент кнопки
var elButton = instance.ActiveTab.FindElementByXPath("//span[@data-tooltip-content='#tooltip_content']", 0);
//Определяем, на каком расстоянии от верха страницы находится кнопка
int topInBrowser = int.Parse(elButton.GetAttribute("topInBrowser"));
//Ведём курсор мышки к кнопке
instance.ActiveTab.FullEmulationMouseMoveToHtmlElement(elButton);
//Кликаем
instance.ActiveTab.FullEmulationMouseClick("left", "click");
Нужный мне элемент на странице находит и кликает, но не могу понять как сделать следующее:

1. var elButton = instance.ActiveTab.FindElementByXPath("//span[@data-tooltip-content='#tooltip_content']", 0);
Изменить 0 на переменную со счетчиком {-Variable.count-}

2. Сделать небольшую "дрожь" мыши после клика, опытным путем понял что только так всплывает и в коде появляются нужные мне данные.

Если есть знания как это осуществить, помогите, буду благодарен.
 

Phoenix78

Client
Read only
Регистрация
06.11.2018
Сообщения
11 790
Благодарностей
5 690
Баллы
113
Благодарю! Уже есть результаты в проекте.

Но также появились другие вопросы.

В теме по FullEmulationMouse (https://zennolab.com/discussion/threads/snippety-ehmuljacii-myshi-fullemulationmouse.35369/) нашел готовый вариант C# и немного его изменил под себя:

C#:
//Находим элемент кнопки
var elButton = instance.ActiveTab.FindElementByXPath("//span[@data-tooltip-content='#tooltip_content']", 0);
//Определяем, на каком расстоянии от верха страницы находится кнопка
int topInBrowser = int.Parse(elButton.GetAttribute("topInBrowser"));
//Ведём курсор мышки к кнопке
instance.ActiveTab.FullEmulationMouseMoveToHtmlElement(elButton);
//Кликаем
instance.ActiveTab.FullEmulationMouseClick("left", "click");
Нужный мне элемент на странице находит и кликает, но не могу понять как сделать следующее:

1. var elButton = instance.ActiveTab.FindElementByXPath("//span[@data-tooltip-content='#tooltip_content']", 0);
Изменить 0 на переменную со счетчиком {-Variable.count-}

2. Сделать небольшую "дрожь" мыши после клика, опытным путем понял что только так всплывает и в коде появляются нужные мне данные.

Если есть знания как это осуществить, помогите, буду благодарен.
пробуйте

C#:
//Находим элемент кнопки
var elButton = instance.ActiveTab.FindElementByXPath("//span[@data-tooltip-content='#tooltip_content']", int.Parse(project.Variables["count"].Value));
//Ведём курсор мышки к кнопке
instance.ActiveTab.FullEmulationMouseMoveToHtmlElement(elButton);
//Кликаем
instance.ActiveTab.FullEmulationMouseClick("left", "click");
// дрожание
int col_druganiy = 3;    // сколько дрыгаемся
Point p1 = instance.ActiveTab.FullEmulationMouseCurrentPosition;
for (int i=1; i<col_druganiy; i++) {
    p1.Offset(2,2);
    instance.ActiveTab.FullEmulationMouseMove(p1.X,p1.Y);
    p1.Offset(-2,-2);
    instance.ActiveTab.FullEmulationMouseMove(p1.X,p1.Y);
}
 

SkyWay

Новичок
Регистрация
02.01.2016
Сообщения
12
Благодарностей
0
Баллы
1

Кто просматривает тему: (Всего: 1, Пользователи: 0, Гости: 1)