Обнаружение и сохранение файлов cookie / localStorage при веб-очистке в C # - PullRequest
0 голосов
/ 19 сентября 2019

Я работаю над очисткой некоторых данных, но веб-сайт подтверждает мой запрос, проверяя файлы cookie.Я получаю одну «бесплатную» страницу, затем она ожидает, что у меня будет установлен набор localStorage или cookie.Обычно он устанавливает 3-5 файлов cookie при загрузке страницы.

Я не уверен, что делать или как сохранить файлы cookie.Я видел, как добавить куки в мой код, прежде чем скомпилировать его, но это работает, только если я перехожу с помощью Firefox / Chrome и получаю от них данные куки.Javascript сайта запутан, поэтому я не могу просто проанализировать его.Я использую ScrapySharp, HtmlAgilityPack и просто обычный старый HttpClient для обмена файлами, чтобы попытаться сохранить куки.

Я вызываю метод GetContent, и мне нужно где-то сохранить информацию о cookie / localStorage, чтобы я мог использовать его сновав следующий раз я позвоню.

public static CookieContainer cookieContainer = new CookieContainer();
public static string GetContent(string url, string referrer= "https://www.google.com")
{
    HttpClientHandler newhandler = new HttpClientHandler()
    {
        AutomaticDecompression = DecompressionMethods.GZip | DecompressionMethods.Deflate,
        CookieContainer = cookieContainer
    };

    var httpClient = new HttpClient(newhandler);
    var httpRequestMessage = new HttpRequestMessage(HttpMethod.Get, CurrentOffice.url);
    httpRequestMessage.Headers.Add("Connection", "keep-alive");
    httpRequestMessage.Headers.Add("Pragma", "no-cache");
    httpRequestMessage.Headers.Add("Cache-Control", "no-cache");
    httpRequestMessage.Headers.Add("Upgrade-Insecure-Requests", "1");
    httpRequestMessage.Headers.Add("User-Agent", "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/69.0.3497.100 Safari/537.36");
    httpRequestMessage.Headers.Add("Accept", "text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,image/apng,*/*;q=0.8");
    httpRequestMessage.Headers.Add("Referer", referrer);
    httpRequestMessage.Headers.Add("Accept-Encoding", "gzip, deflate");
    httpRequestMessage.Headers.Add("Accept-Language", "en-GB,en-US;q=0.9,en;q=0.8");

     //If I can detect them, I can add cookies here like this
    cookieContainer.Add(baseAddress, new Cookie("CookieName", "cookie_value"));

    var httpResponseMessage = httpClient.SendAsync(httpRequestMessage).Result;
    var httpContent = httpResponseMessage.Content;
    string result = httpResponseMessage.Content.ReadAsStringAsync().Result;
    return result;
}

Я надеюсь, что кто-то тоже с этим справился и у него есть предложение.В качестве альтернативы, возможно, я мог бы попытаться заблокировать запуск javascript и перенаправить меня на страницу 405.

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