Безглавой браузер для С# (.NET)?
Я (был) разработчиком Python, который создает приложение для очистки веб-страниц. Недавно я решил перейти на .NET framework и написать одно и то же приложение на С# (это решение не было моим).
В Python я использовал библиотеку Mechanize. Тем не менее, я не могу найти ничего подобного в .NET. Мне нужен браузер, который будет работать в режиме безглавых, который имеет возможность заполнять формы, отправлять их и т.д. Парсер JavaScript не является обязательным, но это было бы очень полезно.
Ответы
Ответ 1
Есть несколько вариантов:
-
WebKit.Net (бесплатно)
-
Awesomium
Он основан на Chrome/WebKit и работает как шарм.
Существует бесплатная лицензия, но также и коммерческая, и в случае необходимости вы можете купить исходный код: -)
-
HTML Agility Pack (бесплатно)
Это помогает с извлечением информации из HTML и т.д. И может быть полезно в вашем случае (возможно, в сочетании с HttpWebRequest
)
Ответ 2
Другие решения:
- PhantomJS - полнофункциональная безголовая сеть
браузер. Часто используется в паре с Selenium, что позволяет вам
доступ к браузеру из приложения .NET.
- Optimus (пакет nuget) - легкий без браузера. Это в бета-версии, но этого достаточно для некоторых случаев.
Я использовал как для веб-тестирования. Но они также подходят для веб-соскабливания.
Ответ 3
Вы можете после TrifleJS (в настоящее время в бета-версии) или что-то подобное с помощью .NET WebBrowser, который взаимодействует с IE через оконный API ActiveX/COM.
В основном вы будете использовать полнофункциональный браузер (а не обертку http-запроса) с помощью механизма Trident Internet Explorer, если вас не интересует JavaScript API (порт phantomjs) вы все равно сможете использовать некоторые из кодовых баз С#, чтобы обойти ключевые понятия (пользовательские заголовки, куки, выполнение script, рендеринг снимков экрана и т.д.).
Обратите внимание, что это также может эмулировать различные версии IE в зависимости от того, что вы установили.
![enter image description here]()