Андрей Воробьев

Андрей Воробьев
Рейтинг
22
Регистрация
12.11.2018
Должность
Программист
Всё должно работать, вместо standalone.jar используйте chromedriver для управления chrome/chromium и geckodriver для управления firefox.

В ридми это всё указано - https://github.com/php-webdriver/php-webdriver .

* Установка пхп библиотеки для вебдрайвера - php-webdriver/webdriver.
php7 ./bin/composer.phar require php-webdriver/webdriver

* Установка *driver для указанного браузера, возьмём chromedriver для хрома.
Для разных версий хрома нужны разные версии драйвера, скачать драйвер для своей версии хрома: https://sites.google.com/a/chromium.org/chromedriver/downloads .

* Запустить вручную chromedriver:
bin/chromedriver --port=7010 --whitelisted-ips=127.0.0.1
Можно посмотреть все доступные опции запуска:
bin/chromedriver -h

* Пример скрипта:
$ php example.php
Title: Не могу запустить php-webdriver - Веб-строительство - Сайтостроение - Форум об интернет-маркетинге
Topic views: 181
Ok, will close browser after 10 sec
done.
<?php

use Facebook\WebDriver\Remote\DesiredCapabilities;
use Facebook\WebDriver\Remote\RemoteWebDriver;
use Facebook\WebDriver\WebDriverBy;
use Facebook\WebDriver\WebDriverExpectedCondition;

require 'vendor/autoload.php';

$host = 'http://localhost:7010';

$capabilities = DesiredCapabilities::chrome();

$driver = RemoteWebDriver::create($host, $capabilities);

$driver->get('https://searchengines.guru/ru/forum/1035407');

echo "Title: " . $driver->getTitle() . PHP_EOL;

$el = $driver->findElement(
    WebDriverBy::xpath("//div[contains(@class, 'comment__views')][contains(@title, ':')]")
);
echo "Topic views: " . $el->getText() . PHP_EOL;

$driver->findElement(WebDriverBy::id('searchHeader'))->click();
sleep(3);

$driver->findElement(WebDriverBy::id('searchPanelInput'))
    ->sendKeys('webdriver');
$driver->findElement(WebDriverBy::id('searchPanelButton'))
    ->click();

$driver->wait()->until(
    WebDriverExpectedCondition::visibilityOfElementLocated(WebDriverBy::id('keyword_input'))
);
echo "Ok, will close browser after 10 sec" . PHP_EOL;
sleep(10);

echo "done." . PHP_EOL;
$driver->quit();
exit(0);

upd: поправил форматирование кода

Готового такого софта не знаю, тоже интересно.

У авито есть апи, там есть функционал работы с сообщениями: https://api.avito.ru/docs/api.html#operation/getMessagesV2 ,

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

Можно самому автоматизировать браузер - написать расширение для браузера, использовать webdriver, chrome devtools protocol, autoit, autohotkey, humanemulator, electronjs и т. п.

12
Всего: 12