Я создаю парсер, который должен удалять некоторый веб-контент. Я столкнулся с проблемой, на странице, которую мне нужно сканировать, есть множество сценариев java, и кажется, что вызовы сценариев java устанавливают некоторые файлы cookie и некоторые параметры строки запроса для следующих запросов.
Я могу устанавливать файлы cookie, отправляя запросы к файлам js, но, похоже, параметры строки запроса генерируются некоторыми закодированными вызовами javascript.
Я не могу их расшифровать, я пытался поискать в Google инструменты для компиляции JS на C #, но тщетно. Если кто-то уже решал аналогичные проблемы ранее, прольите немного света на то, как я могу скомпилировать файл javascript, например браузер, и напрямую сгенерировать html из моего кода C #.
Любая помощь будет принята с благодарностью.
2 ответа
Почему бы не использовать веб-прокси, например fiddler, чтобы узнать, какие заголовки и файлы cookie настроены, и использовать эти данные непосредственно в твой C #?
Таким образом, вам не нужно будет выполнять JS только для определения заголовков и файлов cookie.
Обновление:
Вы также можете использовать пакет веб-автоматизации, такой как WatiN для сканирования сайта - я считаю, что он уже поддерживает JS, так что вам не нужно делать намного больше.
Обновление2:
Поскольку WatiN не подходит для ваших требований, возможно, его компиляция напрямую с использованием компилятора javascript в .NET будет возможна - см. JScript.NET , хотя я сомневаюсь, что в результате будут какие-либо манипуляции с DOM.
Это может быть сложнее, чем вы думаете. Взгляните на эти две темы:
Любой движок Javascript для .NET / C #?
Встраивание движка JavaScript в .NET
Похожие вопросы
Новые вопросы
c#
C # (произносится как «резкий») - это высокоуровневый, статически типизированный язык программирования с несколькими парадигмами, разработанный Microsoft. Код C # обычно нацелен на семейство инструментов и сред выполнения Microsoft .NET, включая, среди прочего, .NET Framework, .NET Core и Xamarin. Используйте этот тег для вопросов о коде, написанном на C # или в формальной спецификации C #.