2010-08-08 2 views
1

Iam, строящий скребок, которому необходимо отказаться от веб-контента. Iam, столкнувшись с проблемой, на странице, которую мне нужно просканировать, загружено несколько java-скриптов, и кажется, что вызовы java-скрипта настраивают некоторые файлы cookie и некоторые параметры строки запроса для следующих запросов.Есть ли способ скомпилировать Javascript, используя мой код на C#?

Iam, способный установить файлы cookie, отправив запросы в файлы js, но кажется, что параметры строки запроса генерируются некоторыми закодированными вызовами javascript.

Я не могу их расшифровать, я пробовал искать инструменты для компиляции JS на C#, но напрасно. Если кто-то решил подобные проблемы раньше, прошу пролить свет на то, как я могу скомпилировать файл javascript, например браузер, и сгенерировать html из моего кода C# напрямую.

Любая помощь будет глубоко оценена.

ответ

4

Почему бы не использовать веб-прокси, например fiddler, чтобы узнать, какие заголовки и файлы cookie настроены и использовать эти данные прямо на вашем C#?

Таким образом, вам не нужно будет запускать JS только для определения заголовков и файлов cookie.

Update:

Вы также можете использовать набор веб-автоматизации, таких как WatiN сканировать сайт - я считаю, что это уже поддерживает JS, так что вам не нужно делать гораздо больше.

Update2:

Поскольку WatiN не хорошо для ваших требований, возможно пересборки его непосредственно с помощью JavaScript для .NET компилятор будет возможно - см JScript.NET, хотя я сомневаюсь, что любые манипуляции с DOM приведет.

+0

Это будет работать только для статических печеньем. Если набор сценариев использует причудливую логику с идентификатором сеанса для генерации файлов cookie, вы должны дублировать логику. Это тяжело, и соскабливание часто бывает трудным. –

+0

@ Микаэль Свенсон - правда. Будут добавлены другие варианты. – Oded

+0

+1 @Oded: Хорошая связь с WatiN, и это хороший выбор для «проблемных» сайтов. Но я бы не использовал это для массового сканирования, поскольку он использует IE/FF для фактического сканирования, и может потребоваться добавить ваши сайты в «надежные сайты» и т. Д. –

Смежные вопросы