Страница 1 из 2
Screenshot всей страницы
Добавлено: 30 ноя 2019, 22:03
super
Есть задача сделать screenshot всей страницы.
Делаю $body->screenshot_by_number("c:\\screenshot.jpg", 0); но получаю только видимую часть, какие есть мысли?
Тоже делает только видимую часть $webpage->print_screen($filepath,-1,-1,-1,-1,true);
Re: Screenshot всей страницы
Добавлено: 02 дек 2019, 14:27
super
13 человек посмотрело и мыслей 0 ?
Re: Screenshot всей страницы
Добавлено: 02 дек 2019, 15:19
Support
super писал(а): ↑02 дек 2019, 14:27
13 человек посмотрело и мыслей 0 ?
проверяем функционал для решения вашей задачи.
можно с масштабом поиграться.
Re: Screenshot всей страницы
Добавлено: 03 дек 2019, 00:02
LazyCot
Можно скриншотить по частям, прокручивать и склеивать.
Похоже, что браузерные расширения с таким функционалом так и работают.
Склеивать можно утилитой imagemagick из командной строки (app.shell_execute)
Пример с параметрами
Можно посмотреть здесь
Re: Screenshot всей страницы
Добавлено: 03 дек 2019, 21:20
super
Понял, спасибо!
Re: Screenshot всей страницы
Добавлено: 04 дек 2019, 01:38
bigfozzy
добавлена функция webpage->print_body по аналогии с webpage->print_screen для скриншота всей страницы
Re: Screenshot всей страницы
Добавлено: 04 дек 2019, 10:56
super
bigfozzy писал(а): ↑04 дек 2019, 01:38
добавлена функция webpage->print_body по аналогии с webpage->print_screen для скриншота всей страницы
Использую webpage->print_screen, делает только видимую часть.
Re: Screenshot всей страницы
Добавлено: 04 дек 2019, 14:13
bigfozzy
Попробуйте этот скрипт - все норм ? webpage->print_screen - дергает только видимую часть и много кто ее использует - поэтому ввели новую функцию для всей страницы:
<?php $xhe_host = "127.0.0.1:7013";
// подключим объект для управления эмулятором, если еще не подключен
if (!isset($path))
$path="../../../Templates/xweb_human_emulator.php";
require($path);
// начало
echo "<hr><font color=blue>webpage->".basename (__FILE__)."</font><hr>";
// 1
echo "1. Перейдем : ";
echo $browser->navigate("http://www.bigfozzy.com")."<br>";
sleep(2);
// 2
echo "2. Распечатаем всю страницу : ";
echo $webpage->print_body("c:\\yahoo.png")."<br>";
// 2
echo "2. Распечатаем кусок страницы : ";
echo $webpage->print_body("c:\\yahoo1.jpeg",200,200,400,400)."<br>";
// 3
echo "3. Распечатаем верх страницы : ";
echo $webpage->print_body("c:\\yahoo2.bmp",-1,-1,-1,200)."<br>";
// 4
echo "4. Распечатаем левую часть страницы : ";
echo $webpage->print_body("c:\\yahoo3.gif",-1,-1,200,-1)."<br>";
// 5
echo "5. Распечатаем всю страницу (упрощенно) : ";
echo $webpage->print_body("c:\\yahoo4.jpeg",-1,-1,-1,-1,true)."<br>";
// покажем распечатки
$app->shell_execute("","c:\\yahoo.png","","c:\\",true);sleep(2);
$app->shell_execute("","c:\\yahoo1.jpeg","","c:\\",true);sleep(2);
$app->shell_execute("","c:\\yahoo2.bmp","","c:\\",true);sleep(2);
$app->shell_execute("","c:\\yahoo3.gif","","c:\\",true);sleep(2);
$app->shell_execute("","c:\\yahoo4.jpeg","","c:\\",true);sleep(2);
// конец
echo "<hr><br>";
// Quit
$app->quit();
?>
Re: Screenshot всей страницы
Добавлено: 05 дек 2019, 20:56
super
Отлично, спасибо!
Re: Screenshot всей страницы
Добавлено: 28 дек 2019, 23:41
super
Подскажите, как избавиться от черного фона, когда делаю $webpage->print_body
Re: Screenshot всей страницы
Добавлено: 29 дек 2019, 20:20
Support
super писал(а): ↑28 дек 2019, 23:41
Подскажите, как избавиться от черного фона, когда делаю $webpage->print_body
А как повторить получение чёрного фона?
Re: Screenshot всей страницы
Добавлено: 30 дек 2019, 12:24
super
Код: Выделить всё
$browser->navigate("https://www.google.com/search?q=site%3Ahumanemulator.net");
$browser->wait_for(3,3);
$webpage->print_body("google.jpg");
Re: Screenshot всей страницы
Добавлено: 30 дек 2019, 12:27
super
И вот, по умолчанию $as_gray=false , но бывает так
Re: Screenshot всей страницы
Добавлено: 06 янв 2020, 18:03
bigfozzy
Спасибо, исправлено, будет доступно при следующем обновлении.
Re: Screenshot всей страницы
Добавлено: 06 янв 2020, 23:27
super
Отлично, спасибо!