Страница 1 из 1
Парсинг динамических данных в реальном времени
Добавлено: 02 апр 2021, 22:32
Avitus
Всем доброго времени суток!
Пытаюсь получить динамические данные но не один способ так и не удался. Пожалуйста подскажите есть ли способ в Human Emulator вытащить эти самые проценты и возвести их в переменную и работать с ними математически. Сломал уже всю голову ничего не помогает.
CSS селекторы Human Emulator не поддерживает. Видит только через расширение Selenium IDE.
Ребята помогите пожалуйста.
- Исходник.png (121.99 КБ) 1454 просмотра
- статистика.png (14.44 КБ) 1454 просмотра
Re: Парсинг динамических данных в реальном времени
Добавлено: 02 апр 2021, 23:16
bigfozzy
а если так:
<?php $xhe_host = "127.0.0.1:7094";
// подключим объект для управления эмулятором, если еще не подключен
if (!isset($path))
$path="../../../Templates/xweb_human_emulator.php";
require($path);
// начало
echo "<hr><font color=blue>interface->".basename (__FILE__)."</font><hr>";
// 1
echo "1. Перейдем на полигон : ";
echo $browser->navigate("http://ya.ru")."<br>";
// 2
echo "2. Получим стиль элемента : ";
echo $anchor->get_by_number(2)->get_computed_style()."<br>";
// 3
echo "3. Получим стиль элемента animation : ";
echo $anchor->get_by_number(2)->get_computed_style("animation")."<br>";
// 4
echo "4. Получим все стили псевдо элемента ::before : ";
echo $anchor->get_by_number(2)->get_computed_style("",'::before')."<br>";
// конец
echo "<hr><br>";
// Quit
$app->quit();
?>
Re: Парсинг динамических данных в реальном времени
Добавлено: 04 апр 2021, 12:13
Avitus
Такой вариант врятли подойдёт потому что данные надо извлекать в реальном времени и их 10 одинаковых блоков.
есть какие то другие варианты? Yапример извлечь через JavaScript.
Re: Парсинг динамических данных в реальном времени
Добавлено: 04 апр 2021, 23:48
bigfozzy
Вы можете также использовать и JS:
<?php $xhe_host = "127.0.0.1:7094";
// подключим объект для управления эмулятором, если еще не подключен
if (!isset($path))
$path="../../../Templates/xweb_human_emulator.php";
require($path);
// начало
echo "<hr><font color=blue>interface->".basename (__FILE__)."</font><hr>";
// 1
echo "1. Перейдем на полигон : ";
echo $browser->navigate("http://humanemulator.net/poligon/canvas.html")."<br>";
// JS
$js ="
var context = element.getContext('2d');
var centerX = element.width / 2;
var centerY = element.height / 2;
var radius = element.height / 2-10;
var i;
for (i=0;i<5;i++)
{
context.beginPath();
context.arc(centerX, centerY, radius-i*8, Math.PI/2, 4 * Math.PI/2, false);
if (i%2==0)
context.fillStyle = 'green';
else if (i%3==0)
context.fillStyle = 'red';
else
context.fillStyle = 'blue';
context.fill();
context.lineWidth = 1;
context.strokeStyle = '#003300';
context.stroke();
}
i
";
// 2
echo "2. Отрисуем картинку на элменте по номеру (нарисуем на холсте) : ";
echo $canvas->get_by_number(0)->run_js($js)."\n";
// конец
echo "<hr><br>";
// Quit
$app->quit();
?>
Re: Парсинг динамических данных в реальном времени
Добавлено: 04 апр 2021, 23:55
bigfozzy
или jQuery:
<?php $xhe_host = "127.0.0.1:7013";
// подключим объект для управления эмулятором, если еще не подключен
if (!isset($path))
$path="../../../Templates/xweb_human_emulator.php";
require($path);
// начало
echo "<hr><font color=blue>browser->".basename (__FILE__)."</font><hr>";
// 1
echo "1. Перейдем на полигон : ";
echo $browser->navigate("http://www.humanemulator.net/poligon/anchor.html")."<br>";
// 2
echo "2. Выполним jQuery : ";
echo $browser->run_jquery("document.getElementsByName('list')[0].id");
// конец
echo "<hr><br>";
// Quit
$app->quit();
?>