Задать вопрос

Как замаскировать «безголовый» браузер (PHP,Nesk\Puphpeteer)?

Делаю простой тест
require('vendor/autoload.php');
use Nesk\Puphpeteer\Puppeteer;
use Nesk\Rialto\Data\JsFunction;
use Nesk\Puphpeteer\Resources\ElementHandle;
$puppeteer=new Puppeteer();
$browser=$puppeteer->launch();
$html_page=$browser->newPage();
$html_page->setUserAgent('Opera/9.80 (Windows NT 6.2; WOW64) Presto/2.12.388 Version/12.17');
$html_page->goto('https://hidemyna.me/ru/ip/',['waitUntil'=>'networkidle2']);
$content=$html_page->evaluate(JsFunction::createWithBody('return document.documentElement.outerHTML'));
$browser->close();
echo $content;

На этом сервисе мне показывает "Ваш браузер Headless Chrome 77.0", как выполнить настройки чтобы к примеру на этом сервисе показывало что зашел якобы из браузера, а не так что видно что работает скрипт?
  • Вопрос задан
  • 937 просмотров
Подписаться 3 Простой Комментировать
Пригласить эксперта
Ответы на вопрос 2
@JWprogrammer
Вы можете использовать PuPHPeteer вместе с puppeteer-extra-plugin-stealth.

1) Установка PuPHPeteer
composer require nesk/puphpeteer

npm install @nesk/puphpeteer

2) Установка плагина puppeteer-extra-plugin-stealth
npm install puppeteer puppeteer-extra puppeteer-extra-plugin-stealth

3) Модификация PuPHPeteer для использования плагина
Изменяем файл vendor/nesk/puphpeteer/src/PuppeteerConnectionDelegate.js

Строка 3:
const puppeteer = require('puppeteer'),
Заменить на:
const puppeteer = require('puppeteer-extra'),

Строка 31:
instruction.setDefaultResource(puppeteer);
Заменить на:
puppeteer.use(require('puppeteer-extra-plugin-stealth')())
instruction.setDefaultResource(puppeteer);


Вы можете также сделать патч с помощью composer-patches, чтобы не делать каждый раз изменение вручную.

Источник
Ответ написан
Комментировать
MvcBox
@MvcBox
Software Engineer [C/C++/JS(for Node.js)/etc]
Придется немного разобраться с Node.js и воспользоваться этим:
https://www.npmjs.com/package/puppeteer-extra + https://www.npmjs.com/package/puppeteer-extra-plug...
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы