Сценарий:
У меня есть целевой веб-сайт, который мне нужно просканировать и сделать снимок экрана с фидом личного кабинета.
Необходимо:
Код:
require 'vendor/autoload.php';
use JonnyW\PhantomJs\Client;
$client = Client::getInstance();
$client->getEngine()->setPath('C:\xampp\htdocs\phantomjs\bin\phantomjs.exe');
$client->getProcedureCompiler()->clearCache();
$client->isLazy();
$delay = 15; // 5 seconds
$width = 1366;
$height = 768;
$top = 0;
$left = 0;$request = $client->getMessageFactory()->createCaptureRequest();
$response = $client->getMessageFactory()->createResponse();
$request->setDelay($delay);
$request->setTimeout(10000);$data = array(
'login' => '***',
'password' => '***',
);
$request->setMethod('POST');
$request->setUrl('login-url');
$request->setRequestData($data); // Set post data
$request->setOutputFile('screenshot.jpg');
$request->setViewportSize($width, $height);
$request->setCaptureDimensions($width, $height, $top, $left);
$client->send($request, $response);
$file = fopen("1.txt","a");
fwrite($file,$response->getContent());
fclose($file);
Вопрос:
Как перейти к URL-адресу персональной страницы без потери файлов cookie и сеанса?
Я уже пытался изменить setUrl только в другой раз по тому же запросу, но он не работает.
$request->setMethod('GET');
$request->setUrl('personal-page-url');
$request->setOutputFile('screenshot1.jpg');
$client->send($request, $response);
$file = fopen("2.txt","a");
fwrite($file,$response->getContent());
fclose($file);
Согласно этому выпуск на github
, по-прежнему существует нефиксированная проблема с файлами cookie. Вы можете следить за этим.
Cookie и php-phantomjs # 124 Open lucl22 открыл этот выпуск 1 октября,
2016 · 3 комментария
Или вы можете использовать другие способы удаления, если ваша целевая веб-страница не имеет такой большой передачи данных ajax, как:
если вам действительно нужно запустить js, вы можете использовать другие веб-драйверы для php
Других решений пока нет …