Парсинг сайта с авторизацией - C# (232598)

Узнай цену своей работы

Формулировка задачи:

Вот что получилось сделать по авторизации:
Листинг программы
  1. public void ASendPost()
  2. {
  3. var postData = "";
  4. postData += "&login=" + login;
  5. postData += "&pass=" + pass;
  6. var httpWebRequest = (HttpWebRequest)WebRequest.Create("https://site.com/auth.php");
  7. SettingsAdd(httpWebRequest);
  8. //
  9. var buffer = Encoding.ASCII.GetBytes(postData);
  10. httpWebRequest.ContentLength = buffer.Length;
  11. using (var writer = httpWebRequest.GetRequestStream())
  12. {
  13. writer.Write(buffer, 0, buffer.Length);
  14. }
  15. var response = (HttpWebResponse)httpWebRequest.GetResponse();
  16. var responseString = new StreamReader(response.GetResponseStream()).ReadToEnd();
  17. if (responseString.Contains("Успешный вход"))
  18. {
  19. MessageBox.Show("Вошел");
  20. }
  21. else
  22. {
  23. MessageBox.Show("Неудача");
  24. }
  25. }
  26. public static void SettingsAdd(HttpWebRequest a)
  27. {
  28. a.Headers.Clear();
  29. a.Method = "POST";
  30. a.AllowAutoRedirect = true;
  31. a.Host = site;
  32. a.UserAgent = "Mozilla/5.0 (Windows NT 6.1; WOW64; rv:52.0) Gecko/20100101 Firefox/52.0";
  33. a.Accept = "*/*";
  34. a.Headers.Add(@"Accept-Language:");
  35. a.Headers.Set(@"Accept-Language", "ru-RU,ru;q=0.8,en-US;q=0.5,en;q=0.3");
  36. a.Headers.Add(@"Accept-Encoding:");
  37. a.Headers.Set(@"Accept-Encoding", "gzip, deflate, br");
  38. a.ContentType = "application/x-www-form-urlencoded";
  39. a.Headers.Add("X-Requested-With:");
  40. a.Headers.Set("X-Requested-With", "XMLHttpRequest");
  41. a.Referer = "https://site.com/?a=login";
  42. a.Headers.Add("Cookie:");
  43. a.Headers.Set("Cookie", "1");
  44. a.KeepAlive = true;
  45. a.ContentLength = 37;
  46. a.ServicePoint.Expect100Continue = false;
  47. //
  48.  
  49. }
(авторизация проходит только в включенным HttpAnalyzerStdV7, почему? - не знаю) но как после авторизации пропарсить https://site.com/index.php?a=account на наличие div class="container"?
UP UP UP

Решение задачи: «Парсинг сайта с авторизацией»

textual
Листинг программы
  1.        
  2. public static void Parse4Balance(string response, Label a)
  3.         {
  4.             HtmlAgilityPack.HtmlDocument doc = new HtmlAgilityPack.HtmlDocument();
  5.             doc.LoadHtml(response);
  6.             HtmlNodeCollection c = doc.DocumentNode.SelectNodes("//div[@class='dashboard_info-num']");
  7.             if (c != null)
  8.             {
  9.                 a.Text = c[0].InnerHtml;
  10.             }
  11.             else
  12.             {
  13.                 a.Text = "ERROR";
  14.             }
  15.         }

ИИ поможет Вам:


  • решить любую задачу по программированию
  • объяснить код
  • расставить комментарии в коде
  • и т.д
Попробуйте бесплатно

Оцени полезность:

12   голосов , оценка 4.417 из 5

Нужна аналогичная работа?

Оформи быстрый заказ и узнай стоимость

Бесплатно
Оформите заказ и авторы начнут откликаться уже через 10 минут