0

Мне нужно написать эмулятор браузера без GUI. Отправка запроса, парсинг страницы, взаимодействие с сайтом (нажатия на кнопки, ввод в поля), выполнение JavaScript и установка прокси.

Стандартный WebBrowser, WebKit, Gecko, CefSharp - не подходят, т.к. нельзя установить прокси для разных экземпляров. Selenium тоже не подойдет.

Как можно к своей программе прикрутить интерпретатор JS?

Или есть готовые проекты или полноценные браузеры на C#?

  • Или есть готовые проекты или полноценные браузеры на C#? - HttpClient()... – EvgeniyZ Feb 26 '20 at 19:01
  • 1
  • @EvgeniyZ, HttpClient - далеко не браузер – Grundy Feb 26 '20 at 23:53
  • а селениум почему не подходит? – Grundy Feb 26 '20 at 23:54
  • @Grundy Дайте мне хоть один сайт, который требуется спарсить (а судя по вопросу автора это он и хочет) и для которого требуется тащить "тяжелую артиллерию" в виде селениума и прочей гадости, тогда соглашусь. Сейчас же как по мне автор совершенно не понимает что хочет сделать и пытается найти то, что за него сделает всю "магию", а он готовенькое будет собирать. Парс, это 99.9% банальный POST/GET запрос с нужными заголовками и куками, а это - HttpClient(). – EvgeniyZ Feb 27 '20 at 00:11
  • @EvgeniyZ, любое SPA или более менее сложный клиентский интерфейс и HttpClient - в пролете :) – Grundy Feb 27 '20 at 00:11
  • @Grundy Повторюсь, дайте мне такой, я посмотрю из чего он состоит и я почти уверен, что найду там отправку запроса на некий адрес, который отдает ему данные для генерации. – EvgeniyZ Feb 27 '20 at 00:14
  • @EvgeniyZ, например rt.ru – Grundy Feb 27 '20 at 00:21
  • @Grundy И что получать будем? Тарифы? Пожалуйста, POST запрос, подберите только правильные параметры (заголовки/cookie) и получите чистый JSON с нужными данными. Нужно ли для этого тащить селениум? Не думаю... Я лично сделаю на чистом HttpClient без проблем. Вот к примеру я авторизовался на сервисах яндекса, что позволило получить данные например почты и все на чистом c#. – EvgeniyZ Feb 27 '20 at 00:32
  • @EvgeniyZ, для создания бота для сайта. – Cooller Floyd Feb 27 '20 at 04:26
  • @CoollerFloyd Поймите как работает сайт, тогда уже и думайте, нужен вам целый браузер в проекте или нет. Я например без труда делал ботов для Web игр, где надо было тыкать периодически на разные кнопки для сбора лута и не поверите, все было на простом HttpClient. Повторюсь, большинство задач решаются банальной отправкой POST/GET запроса с нужными параметрами. Я соглашусь, да, есть задачи, где такой подход необходим, но их единицы и то, часть из них можно все же сделать на чистом C#, затратив больше времени на разработку. – EvgeniyZ Feb 27 '20 at 10:48
  • Может кто-нибудь подсказать как установить прокси для WebBrowser? В инете есть несколько примеров как это сделать. Но они устанавливают общий прокси для всех экземпляров. Я думал может это можно сделать через рефлексию? Вскрыл dll через dnSpy и не могу найти где можно это сделать. – Cooller Floyd Feb 28 '20 at 06:43

0 Answers0