Безголовый браузер для 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 в зависимости от того, что вы установили.