#
Как это работает
На этой странице кратко описывается, что вы можете делать с помощью нашего API, а также некоторые ключевые функции, включая автоматизацию браузера.
#
API
Мы разработали наш API таким образом, чтобы вы могли получить доступ ко всем своим ресурсам (кластерам, профилям, группам). и т. д.), управляйте и настраивайте их по своему желанию и в соответствии с вашим вариантом использования:
- Список групп и профилей, а также пользователей, закладок, тегов и т.д.
- Создавайте новые профили, группы и другие ресурсы, такие как категории и расширения.
- Полностью настраивайте свои профили, включая их отпечатки пальцев.
- Импорт и экспорт файлов cookie профиля.
- Скачайти и загрузите папки профиля на случай, если вы захотите изменить его содержимое (например, историю или пароли).
Теоретически вы вполне можете разработать собственное клиентское приложение, которое будет иметь тот же функционал, что и официальное приложение Surfinite, имеющее только ключ API.
Примечание
У нас нет локального REST API, все запросы должны быть сделаны непосредственно к конечным точкам https://api.surfinite.com даже для автоматизации браузера.
#
Справочник API
Вы можете найти справочную документацию по API, щелкнув ссылку «Справочник API» в верхней панели или
используя эту ссылку.
Некоторые из этих конечных точек будут описаны далее (особенно в отношении запуска профиля и файлов cookie), поэтому:
если вы уже знакомы с автоматизацией браузера, например используя Selenium, вы можете пропустить следующий раздел и
перейдите к:
#
Автоматизация браузера
Мы предоставляем возможность автоматизировать ваш процесс использования браузера с помощью Selenium. По сути, он позволяет вам программно управлять браузером, например:
- Переходите по ссылкам
- Прочитать содержимое страницы
- Нажимайте кнопки
- Введите текст в поля ввода
- Выполнить яваскрипт
Более того, мы разработали систему таким образом, чтобы у вас был доступ к
ChromeDriver
(а не RemoteWebDriver
), и, кроме того,
у вас есть все возможности Chrome DevTools Protocol,
это означает, что вы можете:
- Импортировать и экспортировать файлы cookie «на лету» во время просмотра.
- Добавлять расширения из файлов
.crx
. - Перехватываь сетевые запросы
- Вставлять JavaScript при каждом создании кадра.
- И другие полезные возможности CDP
#
Основы
Чтобы начать с автоматизацией браузера, убедитесь, что у вас есть бинарные файлы chrome
и chromedriver
. Если вы установили
Surfinite App, вы найдете их в:
- для Windows:
C:\Users\<имя пользователя>\.surfinite\browser\
- для macOS:
/Users/<имя пользователя>/.surfinite/browser/Chromium.app/Contents/MacOS/
- для Linux:
/home/<имя пользователя>/.surfinite/browser/
Вот краткий пример того, как запустить профиль:
val profileId: String = "my_profile_id"
val apiKey: String = "MY_API_KEY"
// Get permission to start the profile
// and browser key (needed for browser launch)
val browserKey: String = startProfile(
profileId = profileId,
apiKey = apiKey
)
// Download profile folder
val profileDirPath = "/home/myuser/profiles/$profileId"
downloadProfileFolder(
profileId = profileId,
profileDirPath = profileDirPath,
apiKey = apiKey
)
val options = ChromeOptions()
val chromePath = "/home/myuser/.surfinite/browser/chrome"
val chromeDriverPath = "/home/myuser/.surfinite/browser/chromedriver"
// Set Chrome binary path
options.setBinary(chromePath)
// Set Chromedriver binary path
System.setProperty("webdriver.chrome.driver", chromeDriverPath)
// Set options to launch the profile
options.addArguments("--user-data-dir=$profileDirPath")
options.addArguments("--profile-id=$profileId")
options.addArguments("--browser-key=$browserKey")
val driver = ChromeDriver(options)
// Use the driver
driver["https://example.com/"]
Короче говоря, чтобы запустить браузер для автоматизации, вы должны установить пути chrome
и chromedriver
в ChromeOptions`.
объект, а затем инициализировать ChromeDriver.
#
Элементы управления
Обычно процесс автоматизации включает в себя несколько этапов. Во-первых, после того, как вы определили страницу, которую хотите автоматизировать и придумали порядок ввода и кнопок (в соответствии с вашим алгоритмом), вам нужно будет найти CSS-селекторы соответствующих элементов.
Самый простой способ найти его — использовать инструмент «Инспектор элемента», доступный в каждом веб-браузере. Вот пример
идентификация кнопки с идентификатором access-btn
:
Вы также можете использовать инструмент «Веб-консоль», чтобы мгновенно проверить свои селекторы, например. набрав
document.querySelector('#access-btn')
.
После того, как вы определили все свои CSS-селекторы, пришло время запрограммировать логику автоматизации. Этот пример откроет веб-сайт Surfinite и нажмите кнопку «Получить доступ»:
// ...
driver["https://surfinite.com"]
// Use the css selector
val gainAccessBtn = driver.findElement(By.id("access-btn"))
// Click the button
gainAccessBtn.click()
Конечно, при использовании Selenium в вашем случае вы столкнетесь с множеством ловушек, начиная от необходимости ждать загрузки DOM на каждой страницн, а селекторы CSS слишком громоздкие и нетривиальные из-за некоторых Selenium CDP. Ошибки оболочки, сложность реализации действий, подобных человеческим (прокрутка и движения мыши), чтобы оставаться незамеченными.
Документация будет содержать несколько советов и рекомендаций, которые помогут вам в вашем путешествии в мир автоматизации, и будет постоянно обновляться. Так что продолжайте читать и следите за обновлениями.