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

вопросы и ответы по использованию PHP
Ответить
Avitus
Сообщения: 4
Зарегистрирован: 02 апр 2021, 22:04

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

Сообщение Avitus » 02 апр 2021, 22:32

Всем доброго времени суток!

Пытаюсь получить динамические данные но не один способ так и не удался. Пожалуйста подскажите есть ли способ в Human Emulator вытащить эти самые проценты и возвести их в переменную и работать с ними математически. Сломал уже всю голову ничего не помогает.
CSS селекторы Human Emulator не поддерживает. Видит только через расширение Selenium IDE.
Ребята помогите пожалуйста.
Исходник.png
Исходник.png (121.99 КБ) 100 просмотров
статистика.png
статистика.png (14.44 КБ) 100 просмотров

Аватара пользователя
bigfozzy
Site Admin
Сообщения: 2767
Зарегистрирован: 28 июл 2008, 17:24
Контактная информация:

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

Сообщение bigfozzy » 02 апр 2021, 23:16

а если так:
<?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();
?>

Avitus
Сообщения: 4
Зарегистрирован: 02 апр 2021, 22:04

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

Сообщение Avitus » 04 апр 2021, 12:13

Такой вариант врятли подойдёт потому что данные надо извлекать в реальном времени и их 10 одинаковых блоков.
есть какие то другие варианты? Yапример извлечь через JavaScript.

Аватара пользователя
bigfozzy
Site Admin
Сообщения: 2767
Зарегистрирован: 28 июл 2008, 17:24
Контактная информация:

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

Сообщение bigfozzy » 04 апр 2021, 23:48

Вы можете также использовать и 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();
?>

Аватара пользователя
bigfozzy
Site Admin
Сообщения: 2767
Зарегистрирован: 28 июл 2008, 17:24
Контактная информация:

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

Сообщение bigfozzy » 04 апр 2021, 23:55

или 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();
?>

Ответить