C/C++

С помощью какой библиотеки или фреймворка можно автоматизировать действия в браузере, не открывая самого браузера?

Askar Narmahanov
Askar Narmahanov
3 179
Если именно в браузере, то Chrome DevTools Protocol или Selenium (как обертка для того же CDTP). Там есть режим headless, то есть, браузер "открываться" не будет. Но, в фоне его процесс, запускаться, разумеется, будет.

Другой подход - использовать Chromium Embedded Framework или другие встраиваемые фреймворки. Да даже Electron, хотя он немного для другого. В этих случаях в твое приложение встраивается браузерный движок (можно с окном, можно в фоне), а какой-то внешний браузер не нужен.

Еще один вариант - вообще обойтись без браузера, а лишь имитировать HTTP-запросы, которые отправляет страница. Тогда подойдет любая библиотека для отправки HTTP-запросов, библиотека для работы с JSON, библиотека для работы с HTML, и отладочный прокси, чтобы понять какие именно запросы подделывать (в качестве прокси рекомендую Fiddler).

C/C++ слишком тяжелая артиллерия для такой задачи. Хотя и пишу на C++, но такие задачи я решаю на Node.js, Python, C# - языках, которые лучше для этого подходят.
Поэтому не надо меня спрашивать, чем парсить HTML на C++ или где там библиотека для Chrome DevTools Protocol.
Но в принципе, наверняка такие библиотеки есть, только все в разы сложнее.
СV
Сергей V
92 464
Лучший ответ
Если умеешь программировать, ищи по запросу "headless chrome", например https://github.com/puppeteer/puppeteer
Миша Бурма
Миша Бурма
51 780
Askar Narmahanov а точнее?
Именно в браузере или все же для работы с http протоколом?

Для http есть libcurl, libwww например.
Asilbek Zakirov
Asilbek Zakirov
30 155
Askar Narmahanov чтобы для сайта была имитация захода настоящего пользователя
Asilbek Zakirov тогда см. ответ выше. Curl не умеет разбирать дерево обьектов и кликать по кнопкам и подобное