Загрузка...

Html page code

Thread in C# created by karpz99 Feb 6, 2019. 482 views

  1. karpz99
    karpz99 Topic starter Feb 6, 2019 0 Feb 6, 2019
    подскажите после авторизации на сайте нужно получить html страницы для дальнейшего парсинга делаю так
    Code

    httpRequest.KeepAlive = true;
    httpRequest.UserAgent = "Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/535.19 (KHTML, like Gecko) Chrome/18.0.1025.162 Safari/535.19";
    httpRequest.Referer = "https://qwerrrr.ruuu";
    httpRequest.ContentType = "application/x-www-form-urlencoded; charset=UTF-8";
    httpRequest.Cookies = Network.Cookie;
    new WebClient().DownloadFile("https://https://qwerrrr.ruuu", "myBook.pdf");
    но получаю html что я не авторизован Как получить код страницы как в браузере после авторизации
     
  2. TeeNeeRop
    TeeNeeRop Feb 6, 2019 Человек-Человека брось,а зверя-крысу, себе забери 126 Sep 13, 2017
    Сессия бро
     
  3. THEBIST206342
    THEBIST206342 Feb 8, 2019 Banned 6 Nov 9, 2017
    Код не полный, если ты не авторизован то скорее всего нужно указать куки.
     
  4. karpz99
    karpz99 Topic starter Feb 8, 2019 0 Feb 6, 2019
    вот полный код ,авторизация проходит нормально ,как получить html после авторизации
     
  5. karpz99
    karpz99 Topic starter Feb 8, 2019 0 Feb 6, 2019
    Code
    HttpRequest httpRequest = new HttpRequest();
    httpRequest.KeepAlive = true;
    httpRequest.UserAgent = "Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/535.19 (KHTML, like Gecko) Chrome/18.0.1025.162 Safari/535.19";
    HttpResponse httpResponse = httpRequest.Get("http://site.ru", null);
    Network.Cookie = httpResponse.Cookies;
    byte[] bytes = Encoding.GetEncoding(1251).GetBytes(string.Format("user={0}&pass={1}&login_submit=%CE%F2%EF%F0%E0%E2%E8%F2%FC", login, password));
    httpRequest.ClearAllHeaders();
    httpRequest.KeepAlive = true;
    httpRequest.UserAgent = "Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/535.19 (KHTML, like Gecko) Chrome/18.0.1025.162 Safari/535.19";
    httpRequest.Referer = "http://site.ru";
    httpRequest.ContentType = "application/x-www-form-urlencoded";
    httpRequest.AllowAutoRedirect = false;
    httpRequest.Cookies = Network.Cookie;
    httpResponse = httpRequest.Post("http://site.ru", bytes);
    Network.Cookie = httpResponse.Cookies;
    if (httpResponse.HasRedirect)
    {
    Network.Логин = login;
    result = true;
     
  6. THEBIST206342
    THEBIST206342 Feb 9, 2019 Banned 6 Nov 9, 2017
    Какую ты бибилиотеку используешь для отправки запросов? Leaf.xNet или xNet просто?
     
  7. karpz99
    karpz99 Topic starter Feb 9, 2019 0 Feb 6, 2019
  8. THEBIST206342
    THEBIST206342 Feb 9, 2019 Banned 6 Nov 9, 2017
    karpz99, У тебя в коде слишком много ошибок, его проще переписать
     
  9. THEBIST206342
    THEBIST206342 Feb 9, 2019 Banned 6 Nov 9, 2017
    karpz99, И зачем ты параметры передаешь в байтах? для этого есть RequestParams
     
  10. karpz99
    karpz99 Topic starter Feb 9, 2019 0 Feb 6, 2019
    разговор не про ошибку кода , главное он работает безотказно , что дописать для получения html
     
  11. Checkerchin
    Checkerchin Feb 13, 2019 178 Apr 16, 2017
    После авторизации ты должен сохранить куки. Хз, как там в xNet, но в стандартном шарпе есть класс CookieContainer.
    Code

    var req = (HttpWebRequest)WebRequest.Create("ссылка на php");
    CookieContainer cc = new CookieContainer();
    req.CookieContainer = cc;
    //Заполняешь запрос
    var resp = (HttpWebResponse)req.GetResponse();
    Если авторизация успешна - с этими куками ты посылаешь еще один на нужную тебе стр и смотришь html код. Чекни msdn, там есть примеры.
     
  12. THEBIST206342
    THEBIST206342 Feb 14, 2019 Banned 6 Nov 9, 2017
    После HttpRequest httpRequest = new HttpRequest(); добавь:
    httpRequest.Cookies = new CookieDictionary();
    И удали это:
    Network.Cookie = httpResponse.Cookies;
    httpRequest.Cookies = Network.Cookie;
    По идеи xNet должен автоматически хранить куки одного сайта и использовать их в последущих запросах
     
Top
Loading...