Найти в Дзене
IT Хищник

Парсинг сайтов. Начало работы с Facebook\Webdriver PHP (Часть 2)

Продолжаем ознакомление с возможностями Webdriver. Сегодня более подробно рассмотрим разворачивание нового экземпляра Chome с дополнительными настройками.

Для добавления новых опций к разворачиваемому экземпляру окна браузера используется addArguments. Существует большое количество подключаемых параметров. Сегодня же мы рассмотрим несколько из них.

Для этого создаем переменную chromeOptions, с помощью которой и будем передавать в создаваемый экземпляр окна необходимые параметры.

  • $chromeOptions = new \Facebook\WebDriver\Chrome\ChromeOptions();
  • $chromeOptions->addArguments(['--headless']);
  • $chromeOptions->addArguments(["load-extension="/path/to/extension"]);

Что мы видим, после создания переменной опций, нам открывается возможность с помощью функции addArguments добавлять некие аргументы. Для примера я использовал следующие:

headless : Запуск в автономном режиме, т. е. без зависимостей пользовательского интерфейса или сервера отображения. По простому, наш скрипт будет выполняться без отображения окна браузера.

load-extension : Разделенный запятыми список путей к расширениям для загрузки при запуске. Используется в тех случаях если нам необходимо подключить расширения. Как было сказано в первом уроке, создаваемый экземпляр браузера будет без расширений и пользовательских данных.

Более подробно со списком возможных передаваемых параметров вы можете ознакомиться тут.

Перейдем к практическому применению. В целях демонстрации я не буду использовать параметр headless. В первом примере не будем ничего передавать в наш браузер и удостоверимся в том что никакие расширения в нем не установлены.

Код программы:

После перехода на страницу https://github.com/php-webdriver/php-webdriver я перешел в дополнительные инструменты->расширения
После перехода на страницу https://github.com/php-webdriver/php-webdriver я перешел в дополнительные инструменты->расширения

Теперь подключим любое расширение, в моем случае это будет плагин anticaptcha-plugin_v0.62. Перейдем на ту же страницу и проверим результат.

Код программы:

  • $chrome_options = new ChromeOptions();
  • $chrome_options->addArguments(["load-extension=".$settings->api_anticapcha->path_to_extention.""]); //using json file to load path
  • $capabilities = DesiredCapabilities::chrome();
  • $capabilities->setCapability(ChromeOptions::CAPABILITY, $chrome_options);
  • $driver = ChromeDriver::start($capabilities);
После перехода на страницу https://github.com/php-webdriver/php-webdriver я перешел в дополнительные инструменты->расширения
После перехода на страницу https://github.com/php-webdriver/php-webdriver я перешел в дополнительные инструменты->расширения

Как мы видим расширение появилось. Теперь мы можем пользоваться его возможностями где нам будет необходимо. Стоит отметить одну очень важную вещь, путь к расширению должен не может меняться, использовать можно как распакованный zip архив с плагином так и файл .crx (Пример подключения расширений).

Надеюсь данный урок был для вас полезным. Далее мы рассмотрим возможности эмулирование работы пользователя и взаимодействие с элементами и разметкой страницы.

Подписывайся, чтобы не пропустить следующий урок.