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

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

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

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

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

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

Аватара пользователя
bigfozzy
Site Admin
Сообщения: 2756
Зарегистрирован: 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
Сообщения: 2756
Зарегистрирован: 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
Сообщения: 2756
Зарегистрирован: 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();
?>

Ответить