@Zimaell

Почему на разных сервисах показывает разный user agent puppeteer?

Собственно проблема в установке юзер агента, так чтобы он не выглядел как безголовый, но вот проблема, на один сервис я захожу
https://intoli.com/blog/not-possible-to-block-chro...
Там показывает тот ЮГ который я установил, и если я его меняю и на этом тесте он меняется, а вот на другом
https://www.cy-pr.com/tools/browser/
Показывает что у меня HeadlessChrome...
Как так то?
Юзер агент я вбивал несколькими способами
$browser=$puppeteer->connect(
	['browserWSEndpoint'=>'http://localhost:3000',
	'headless'=>false,
	'args'=>[
		'--no-sandbox',
		'--disable-setuid-sandbox',
		'--user-agent='.$user_agent
		]
	]);

и так
$page=$browser->createIncognitoBrowserContext()->newPage();
$page->evaluateOnNewDocument('
	Object.defineProperty(navigator, "userAgent", {
		get: function(){ return ["'.$user_agent.'"]; }
		});
	');

Что я не так делаю? Почему я меняю ЮГ и один сервис это принимает а другой четко определяет что это безголовый?
  • Вопрос задан
  • 81 просмотр
Решения вопроса 2
kruslan
@kruslan
Код:

<?php

require __DIR__.'/vendor/autoload.php';

$email='....';
$password='....';
$user_agent='Mozilla/5.0 (Windows NT 6.1; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/76.0.3809.100 Safari/537.36';

use Nesk\Puphpeteer\Puppeteer;
$puppeteer=new Puppeteer;
$browser=$puppeteer->launch([
	'headless' => false,
	'defaultViewport' => [
		'width' => 1900,
		'height' => 1200,
		'isMobile' => false,
	],
	'ignoreHTTPSErrors' => true,
	'args'=>[
		'--no-sandbox',
		'--disable-setuid-sandbox',
		'--disable-infobars',
		'--window-position=0,0',
		'--ignore-certifcate-errors',
		'--ignore-certifcate-errors-spki-list',
		'--user-agent='.$user_agent
	]
]);

$page = $browser->createIncognitoBrowserContext()->newPage();
$page->goto('https://intoli.com/blog/not-possible-to-block-chrome-headless/chrome-headless-test.html');
sleep(2);
$page->screenshot(['path' => 'intoli.com.png']);

$page = $browser->createIncognitoBrowserContext()->newPage();
$page->goto('https://www.cy-pr.com/tools/browser/');
sleep(2);
$page->screenshot(['path' => 'cy-pr.com.png']);


Результат:
j-3gkaizchggxmaoytfihadrj4c.png
izgsakbdbolu4zarzveivcj48uq.png
Ответ написан
@Zimaell Автор вопроса
заменил только
$browser=$puppeteer->launch([
   'headless' => false,

на
$browser=$puppeteer->connect([
   'browserWSEndpoint'=>'http://localhost:3000',
   'headless' => false,

Иначе у меня работать вообще не будет, результат в обоих случаях ЮГ не поменялся, нарыл и добавил вот так
$page = $browser->createIncognitoBrowserContext()->newPage();
$page->setUserAgent($user_agent);

Теперь они поменялись на обоих сервисах, но разрешение показывает 800x600, хотя в вашем коде устанавливается разрешение и на вашем скрине оно установилось...
В чём же может быть дело?
Единственное чем отличается так это тем что у вас через launch а у меня через connect...
Как думаете в какую сторону копать?
Думаю проблема в самом конекте, что-то там неверно указывается...
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

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

Войти через центр авторизации
Похожие вопросы