Загрузка...

Html код страницы

Тема в разделе C# создана пользователем karpz99 6 фев 2019. 476 просмотров

  1. karpz99
    karpz99 Автор темы 6 фев 2019 0 6 фев 2019
    подскажите после авторизации на сайте нужно получить html страницы для дальнейшего парсинга делаю так
    Код

    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 6 фев 2019 Человек-Человека брось,а зверя-крысу, себе забери 126 13 сен 2017
    Сессия бро
     
  3. THEBIST206342
    THEBIST206342 8 фев 2019 Заблокирован(а) 6 9 ноя 2017
    Код не полный, если ты не авторизован то скорее всего нужно указать куки.
     
  4. karpz99
    karpz99 Автор темы 8 фев 2019 0 6 фев 2019
    вот полный код ,авторизация проходит нормально ,как получить html после авторизации
     
  5. karpz99
    karpz99 Автор темы 8 фев 2019 0 6 фев 2019
    Код
    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 9 фев 2019 Заблокирован(а) 6 9 ноя 2017
    Какую ты бибилиотеку используешь для отправки запросов? Leaf.xNet или xNet просто?
     
  7. karpz99
    karpz99 Автор темы 9 фев 2019 0 6 фев 2019
  8. THEBIST206342
    THEBIST206342 9 фев 2019 Заблокирован(а) 6 9 ноя 2017
    karpz99, У тебя в коде слишком много ошибок, его проще переписать
     
  9. THEBIST206342
    THEBIST206342 9 фев 2019 Заблокирован(а) 6 9 ноя 2017
    karpz99, И зачем ты параметры передаешь в байтах? для этого есть RequestParams
     
  10. karpz99
    karpz99 Автор темы 9 фев 2019 0 6 фев 2019
    разговор не про ошибку кода , главное он работает безотказно , что дописать для получения html
     
  11. Checkerchin
    Checkerchin 13 фев 2019 178 16 апр 2017
    После авторизации ты должен сохранить куки. Хз, как там в xNet, но в стандартном шарпе есть класс CookieContainer.
    Код

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