Страница 1 из 1

Парсинг динамических данных в реальном времени

Добавлено: 02 апр 2021, 22:32
Avitus
Всем доброго времени суток!

Пытаюсь получить динамические данные но не один способ так и не удался. Пожалуйста подскажите есть ли способ в Human Emulator вытащить эти самые проценты и возвести их в переменную и работать с ними математически. Сломал уже всю голову ничего не помогает.
CSS селекторы Human Emulator не поддерживает. Видит только через расширение Selenium IDE.
Ребята помогите пожалуйста.
Исходник.png
Исходник.png (121.99 КБ) 1454 просмотра
статистика.png
статистика.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();
?>