Безголовый браузер для C# (.NET)?

Я (был) разработчик Python, который создает веб-приложение с графическим интерфейсом. Недавно я решил перейти на.NET Framework и написать то же приложение на C# (это решение не мое).

В Python я использовал библиотеку Mechanize. Тем не менее, я не могу найти ничего подобного в.NET. Мне нужен браузер, который будет работать в автономном режиме, который может заполнять формы, отправлять их и т. Д. Синтаксический анализатор JavaScript не обязателен, но он был бы весьма полезен.

3 ответа

Решение

Есть несколько вариантов:

  • WebKit.Net (бесплатно)

  • Awesomium
    Он основан на Chrome/WebKit и работает как шарм. Доступна бесплатная лицензия, но также коммерческая, и при необходимости вы можете купить исходный код:-)

  • HTML Agility Pack (бесплатно)
    Это помогает извлекать информацию из HTML и т. Д. И может быть полезно в вашем случае (возможно, в сочетании с HttpWebRequest)

Больше решений:

  • PhantomJS - полнофункциональный безголовый веб-браузер. Часто используется в паре с Selenium, который позволяет получить доступ к браузеру из приложения.NET.
  • Optimus ( пакет nuget)- легкий безголовый веб-браузер. Это в бета-версии, но в некоторых случаях этого достаточно.

Я использовал оба для веб-тестирования. Но они также подходят для очистки веб-страниц.

Вы можете быть после TrifleJS (в настоящее время в бета-версии) или чего-то подобного, используя класс .NET WebBrowser, который взаимодействует с IE через API ActiveX/COM без окон.

По сути, вы будете использовать полноценный браузер (не упаковщик запросов http) с использованием движка Trident в Internet Explorer, если вы не заинтересованы в JavaScript API (порт фантомных сообщений), вы все равно сможете использовать некоторую кодовую базу C# обойти ключевые понятия (пользовательские заголовки, куки, выполнение скриптов, рендеринг скриншотов и т. д.).

Обратите внимание, что это также может эмулировать разные версии IE в зависимости от того, что вы установили.

Другие вопросы по тегам