Вернуть управляемые Javascript файлы cookie программно, используя C # - PullRequest
0 голосов
/ 23 февраля 2012

Я пытаюсь программно проверить связь с сайтом (через консольное приложение) и вернуть сведения обо всех файлах cookie, используемых этим сайтом.

Следующий подход, который я использую, захватывает только те куки, которые управляются с помощью запроса заголовка, и пропускает те, которые установлены с помощью Javascript:

HttpWebRequest request = (HttpWebRequest)WebRequest.Create(url);
request.CookieContainer = new CookieContainer();
request.UserAgent = "Mozilla/4.0 (compatible; MSIE 7.0; Windows NT 6.0)";
request.Method = "GET";

response = (HttpWebResponse)request.GetResponse();

foreach (Cookie c in response.Cookies)
{
   cookie.Add(c);
}

Может ли кто-нибудь дать предложения о том, как это можно расширить, чтобы включить файлы cookie, настроенные на JavaScript?

Спасибо!

Ответы [ 2 ]

0 голосов
/ 24 февраля 2012

Только что удалось достичь чего-то близкого к тому, что я хотел (все еще тестирую решение, и, похоже, отсутствуют некоторые файлы cookie для отслеживания сторонних производителей!).Однако я использовал Selenium и исполняемый файл Chrome Driver.Что он делает, так это открывает экземпляр Chrome, переходит на URL и извлекает всю динамически генерируемую информацию, которую затем можно запросить с помощью C #.:)

0 голосов
/ 24 февраля 2012

Ну, не знаю, насколько это поможет, но ...

Вы спрашиваете, существует ли простой способ получения файлов cookie, которые динамически создаются клиентским JavaScript, и ответ - нет,нет (если я что-то упускаю).

Есть ли более сложный способ, например, обернуть элемент управления браузером .NET, разрешить выполнение javascript через автоматизированные веб-сценарии и затем удалить DOM ..Мне не кажется, что это хорошая идея.

Любые другие мысли приветствуются.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...