php-webdriver怎麼反反屏蔽繞過WebDriver檢測,網上找了半天沒找到方法,最後還是無意發現一位網友發布的內容,記錄一下。
直接上代碼
disable-blink-features=AutomationControlled
下面是完整的代碼,可以直接進行測試
<?php
// An example of using php-webdriver.
// Do not forget to run composer install before. You must also have Selenium server started and listening on port 4444.
namespace Facebook\WebDriver;
use Facebook\WebDriver\Chrome\ChromeOptions;
use Facebook\WebDriver\Remote\DesiredCapabilities;
use Facebook\WebDriver\Remote\RemoteWebDriver;
require_once('vendor/autoload.php');
// This is where Selenium server 2/3 listens by default. For Selenium 4, Chromedriver or Geckodriver, use http://localhost:4444/
$host = 'http://localhost:9515';
$capabilities = DesiredCapabilities::chrome();
$options = new ChromeOptions();
$options->addArguments(
[
'--no-sandbox', // 解決DevToolsActivePort文件不存在的報錯
'window-size=1080x1920', // 指定瀏覽器分辨率
'--disable-gpu', // 谷歌文檔提到需要加上這個屬性來規避bug
'--hide-scrollbars', // 隱藏滾動條, 應對一些特殊頁面
'blink-settings=imagesEnabled=false', // 不加載圖片, 提升速度
// '--ignore-certificate-errors',
// '--ignore-ssl-errors',
// '--incognito', //無痕模式啟動
'--start-maximized', //全屏模式運行
'disable-blink-features=AutomationControlled', //非常重要,這一個可以繞過WebDriver檢測
//'--disable-setuid-sandbox',
//'--headless', // 瀏覽器不提供可視化頁面
]
);
$capabilities->setCapability(ChromeOptions::CAPABILITY, $options);
$driver = RemoteWebDriver::create($host, $capabilities);
// navigate to Selenium page on Wikipedia
$driver->get('https://intoli.com/blog/not-possible-to-block-chrome-headless/chrome-headless-test.html');
$html_selenium = $driver->getPageSource();
echo $html_selenium;
// close the browser
$driver->quit();
?>
最後通過後是這樣的截圖
參考網址:https://www.cnpython.com/qa/1291905
到此為止。
發布者:彬彬筆記,轉載請註明出處:https://www.binbinbiji.com/zh-hant/php/2338.html