Screenshot всей страницы

часто задаваемые вопросы по программе
Аватара пользователя
super
Сообщения: 146
Зарегистрирован: 03 ноя 2017, 13:58

Screenshot всей страницы

Сообщение super » 30 ноя 2019, 22:03

Есть задача сделать screenshot всей страницы.
Делаю $body->screenshot_by_number("c:\\screenshot.jpg", 0); но получаю только видимую часть, какие есть мысли?

Тоже делает только видимую часть $webpage->print_screen($filepath,-1,-1,-1,-1,true);

Аватара пользователя
super
Сообщения: 146
Зарегистрирован: 03 ноя 2017, 13:58

Re: Screenshot всей страницы

Сообщение super » 02 дек 2019, 14:27

13 человек посмотрело и мыслей 0 ? :)

Аватара пользователя
Support
Site Admin
Сообщения: 982
Зарегистрирован: 10 апр 2009, 17:45
Контактная информация:

Re: Screenshot всей страницы

Сообщение Support » 02 дек 2019, 15:19

super писал(а):
02 дек 2019, 14:27
13 человек посмотрело и мыслей 0 ? :)
проверяем функционал для решения вашей задачи.

можно с масштабом поиграться.

LazyCot
Сообщения: 51
Зарегистрирован: 03 окт 2010, 16:37

Re: Screenshot всей страницы

Сообщение LazyCot » 03 дек 2019, 00:02

Можно скриншотить по частям, прокручивать и склеивать.
Похоже, что браузерные расширения с таким функционалом так и работают.
Склеивать можно утилитой imagemagick из командной строки (app.shell_execute)
Пример с параметрами Можно посмотреть здесь

Аватара пользователя
super
Сообщения: 146
Зарегистрирован: 03 ноя 2017, 13:58

Re: Screenshot всей страницы

Сообщение super » 03 дек 2019, 21:20

Понял, спасибо!

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

Re: Screenshot всей страницы

Сообщение bigfozzy » 04 дек 2019, 01:38

добавлена функция webpage->print_body по аналогии с webpage->print_screen для скриншота всей страницы

Аватара пользователя
super
Сообщения: 146
Зарегистрирован: 03 ноя 2017, 13:58

Re: Screenshot всей страницы

Сообщение super » 04 дек 2019, 10:56

bigfozzy писал(а):
04 дек 2019, 01:38
добавлена функция webpage->print_body по аналогии с webpage->print_screen для скриншота всей страницы
Использую webpage->print_screen, делает только видимую часть.

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

Re: Screenshot всей страницы

Сообщение bigfozzy » 04 дек 2019, 14:13

Попробуйте этот скрипт - все норм ? 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();
?>

Аватара пользователя
super
Сообщения: 146
Зарегистрирован: 03 ноя 2017, 13:58

Re: Screenshot всей страницы

Сообщение super » 05 дек 2019, 20:56

Отлично, спасибо!

Аватара пользователя
super
Сообщения: 146
Зарегистрирован: 03 ноя 2017, 13:58

Re: Screenshot всей страницы

Сообщение super » 28 дек 2019, 23:41

Подскажите, как избавиться от черного фона, когда делаю $webpage->print_body

Аватара пользователя
Support
Site Admin
Сообщения: 982
Зарегистрирован: 10 апр 2009, 17:45
Контактная информация:

Re: Screenshot всей страницы

Сообщение Support » 29 дек 2019, 20:20

super писал(а):
28 дек 2019, 23:41
Подскажите, как избавиться от черного фона, когда делаю $webpage->print_body

А как повторить получение чёрного фона?

Аватара пользователя
super
Сообщения: 146
Зарегистрирован: 03 ноя 2017, 13:58

Re: Screenshot всей страницы

Сообщение super » 30 дек 2019, 12:24

Код: Выделить всё

$browser->navigate("https://www.google.com/search?q=site%3Ahumanemulator.net");
$browser->wait_for(3,3);
$webpage->print_body("google.jpg");
Вложения
google.jpg
google.jpg (106.97 КБ) 409 просмотров

Аватара пользователя
super
Сообщения: 146
Зарегистрирован: 03 ноя 2017, 13:58

Re: Screenshot всей страницы

Сообщение super » 30 дек 2019, 12:27

И вот, по умолчанию $as_gray=false , но бывает так
Вложения
200810031111.jpg
200810031111.jpg (58.96 КБ) 409 просмотров

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

Re: Screenshot всей страницы

Сообщение bigfozzy » 06 янв 2020, 18:03

Спасибо, исправлено, будет доступно при следующем обновлении.

Аватара пользователя
super
Сообщения: 146
Зарегистрирован: 03 ноя 2017, 13:58

Re: Screenshot всей страницы

Сообщение super » 06 янв 2020, 23:27

Отлично, спасибо!

Ответить