Форум программистов, компьютерный форум, киберфорум
C# .NET
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.60/5: Рейтинг темы: голосов - 5, средняя оценка - 4.60
 Аватар для Jylik
110 / 51 / 14
Регистрация: 06.03.2012
Сообщений: 858

Как авторизоваться на сайте в ВК?

20.10.2015, 01:54. Показов 1143. Ответов 3
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Как авторизоваться на сайте в ВК, через Post-запрос для получения скрытых от общего просмотра сведений?
GET-запрос выполняю через HttpAgilityPack.
C#
1
2
            GetMethod("https://vk.com/im", "dialogs_msg_text wrapped fl_l");
            txt1.Text = string.Format("{0}", coll[0]);
Кликните здесь для просмотра всего текста
C#
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
private void GetMethod(string url, string clas)
        {
            coll.Clear();
 
            HttpWebRequest webRequest = (HttpWebRequest)WebRequest.Create(url);
            webRequest.Method = "GET";
            webRequest.UserAgent = "Mozilla/5.0 (Windows NT 6.1; rv:14.0) Gecko/20100101 Firefox/14.0.1";
            webRequest.Referer = "http://www.firm-myw.narod.ru";
 
            HtmlDocument doc = new HtmlDocument();
            HttpWebResponse webResponse = (HttpWebResponse)webRequest.GetResponse();
            doc.Load(webResponse.GetResponseStream(), true);
 
            try
            {
                foreach (HtmlAgilityPack.HtmlNode node in doc.DocumentNode.SelectNodes("//span[@class='" + clas + "']"))
                {
                    coll.Add(node.InnerText);
                }
            }
            catch
            {
                try
                {
                    foreach (HtmlAgilityPack.HtmlNode node in doc.DocumentNode.SelectNodes("//div[@id='" + clas + "']"))
                    {
                        coll.Add(node.InnerText);
                    }
                }
                catch
                {
                    try
                    {
                        foreach (HtmlAgilityPack.HtmlNode node in doc.DocumentNode.SelectNodes("//div[@class='" + clas + "']"))
                        {
                            coll.Add(node.InnerText);
                        }
                    }
                    catch
                    {
                        try
                        {
                            foreach (HtmlAgilityPack.HtmlNode node in doc.DocumentNode.SelectNodes("//span[@id='" + clas + "']"))
                            {
                                coll.Add(node.InnerText);
                            }
                        }
                        catch
                        {
                            MessageBox.Show("Класс не найден.");
                        }
                    }
 
                }
 
            }
        }


Добавлено через 15 часов 54 минуты
...но нечего не выходит, я же не автаризирован - следовательно получить последнее сообщение не могу.
0
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
20.10.2015, 01:54
Ответы с готовыми решениями:

Как авторизоваться на сайте?
есть сайт на котором авторизация происходит либо через вконтакте (ulogin) либо логин пароль сам сайт http://ad-social.org/ ...

как авторизоваться на сайте?
Приветствую всех. Не получается у меня что-то авторизоваться на сайте glopart.ru Может кто подскажет, какие там могут быть костыли?...

Как программно авторизоваться на сайте
мне необходимо создать простейшую программу - берет логин\пароль с текстового файла,вставляет в форму входа на моем сайте,осуществляет...

3
979 / 874 / 350
Регистрация: 26.04.2012
Сообщений: 2,647
20.10.2015, 05:30
Ну так... а куки-то где? Авторизация заключается в получение куков. Посылаете нужный запрос(у VK должно быть API,я им не пользовался, но в инете море инфы), куки получаете в CookieContainer, остальные запросы посылаете используя этот же контейнер. И хедеры, вполне вероятно, нужно еще какие-то поставить. Короче говоря, либо смотрите в сниффере правильный запрос из браузера, либо читаете по поводу API(второе предпочтительнее), ну а дальше посылаете такой же запрос, и делать это лучше HttpClientoм, а не httpWebRequestом.
0
 Аватар для Jylik
110 / 51 / 14
Регистрация: 06.03.2012
Сообщений: 858
21.10.2015, 06:05  [ТС]
EvilFromHell, пример плз
0
979 / 874 / 350
Регистрация: 26.04.2012
Сообщений: 2,647
21.10.2015, 06:12
Конкретно для ВК-надо гуглить, просто вообще пример логина на каком-то сайте-вот:
C#
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
        protected  void LogIn(CookieContainer CC)
        {
            string result = "";
            using (var handler = new HttpClientHandler() { CookieContainer = CC, AutomaticDecompression = DecompressionMethods.GZip | DecompressionMethods.Deflate })
            {
                if (Proxy != null)
                {
                    handler.Proxy = Proxy;
                    handler.UseProxy = true;
                }
                using (var client = new HttpClient(handler) { BaseAddress = Host })
                {
                    try
                    {
                        client.DefaultRequestHeaders.TryAddWithoutValidation("Cache-Control", "max-age=0");
                        client.DefaultRequestHeaders.TryAddWithoutValidation("Accept", "text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,*/*;q=0.8");
                        client.DefaultRequestHeaders.TryAddWithoutValidation("Accept-Encoding", "gzip, deflate");
                        client.DefaultRequestHeaders.TryAddWithoutValidation("User-Agent", "Mozilla/5.0 (Windows NT 6.2; WOW64; rv:37.0) Gecko/20100101 Firefox/37.0");
                        client.DefaultRequestHeaders.TryAddWithoutValidation("Upgrade-Insecure-Requests", "1");
                        client.DefaultRequestHeaders.TryAddWithoutValidation("Accept-Language", "ru-RU,ru;q=0.8,en-US;q=0.6,en;q=0.4");
                        client.Timeout = new TimeSpan(0, 0, 10);
                        List<KeyValuePair<string, string>> content = new List<KeyValuePair<string, string>>();
                        content.Add(new KeyValuePair<string, string>("login", login));
                        content.Add(new KeyValuePair<string, string>("pwd", password));
                        content.Add(new KeyValuePair<string, string>("x", "10"));
                        content.Add(new KeyValuePair<string, string>("y", "6"));
                        content.Add(new KeyValuePair<string, string>("https", "1"));
                        var cont = new FormUrlEncodedContent(content);
                        var postResponse = client.PostAsync("top.php", cont);
                        postResponse.Wait();
                        Task<string> ts = postResponse.Result.Content.ReadAsStringAsync();
                        ts.Wait();
                        cont.Dispose();
                        result = ts.Result;
                    }
                    catch (TimeoutException) { throw new Exception("Нет связи с сервером");}
                    catch (WebException) { throw new Exception("Нет связи с сервером"); }
                    catch (AggregateException) { throw new Exception("Нет связи с сервером"); }
                    catch { }
                    if (result.Contains("Неправильный логин и/или пароль")) { throw new Exception("Неправильный логин и/или пароль"); }
                }
            }
        }
Этот метод вызывается вот тут:
C#
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
        protected override void CheckTimerTick(object state)
        {
            if (Ready)
            {
                Ready = false;
                try
                {
                    CookieContainer CC = new CookieContainer();
                    LogIn(CC);
                    List<GameInfo> GIL = GetLiveList(CC);
                    CheckResults(CC);
 
                    foreach (GameInfo GI in GIL)
                    {
                        DoBet(GI, CC);
                    }
                    LogOut(CC);
                }
                catch (Exception e) { SomethingWrongWrapper(e); }
                finally { Ready = true; }
            }
        }
Как видно, дальше контейнер используется в остальных методах.
1
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
21.10.2015, 06:12
Помогаю со студенческими работами здесь

Как программно авторизоваться на сайте?
Как программно авторизоваться на сайте, если окно авторизации написано на js? Пример сайта: dleshnik.ru (не реклама).

Как авторизоваться на сайте через Delphi?
Как мне авторизоваться на сайте? Нужно получить код страницы (с аккаунта) Попробовал через браузер (вручную (WebBrowser1) ) но не...

Как авторизоваться на сайте программно https?
Есть сайт универа, для которого я хочу сделать удобное приложение с парсингом справлюсь, а вот с авторизацией не могу разобраться как...

Как программно авторизоваться на сайте через форму авторизации?
Добрый день. Как можно программно авторизоваться на сайте через форму авторизации и хранить сессию? На примере...

Как можно с помощью python скрипта авторизоваться на сайте.
Как можно авторизоваться, ввести логин и пароль как-то? Нужно именно с помощью .py скрипта


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
4
Ответ Создать тему
Новые блоги и статьи
SDL3 для Desktop (MinGW): Рисуем цветные прямоугольники с помощью рисовальщика SDL3 на Си и C++
8Observer8 17.03.2026
Содержание блога Финальные проекты на Си и на C++: finish-rectangles-sdl3-c. zip finish-rectangles-sdl3-cpp. zip
Символические и жёсткие ссылки в Linux.
algri14 15.03.2026
Существует два типа ссылок — символические и жёсткие. Ссылка в Linux — это запись в каталоге, которая может указывать либо на inode «файла-ИСТОЧНИКА», тогда это будет «жёсткая ссылка» (hard link),. . .
[Owen Logic] Поддержание уровня воды в резервуаре количеством включённых насосов: моделирование и выбор регулятора
ФедосеевПавел 14.03.2026
Поддержание уровня воды в резервуаре количеством включённых насосов: моделирование и выбор регулятора ВВЕДЕНИЕ Выполняя задание на управление насосной группой заполнения резервуара,. . .
делаю науч статью по влиянию грибов на сукцессию
anaschu 13.03.2026
прикрепляю статью
SDL3 для Desktop (MinGW): Создаём пустое окно с нуля для 2D-графики на SDL3, Си и C++
8Observer8 10.03.2026
Содержание блога Финальные проекты на Си и на C++: hello-sdl3-c. zip hello-sdl3-cpp. zip Результат:
Установка CMake и MinGW 13.1 для сборки С и C++ приложений из консоли и из Qt Creator в EXE
8Observer8 10.03.2026
Содержание блога MinGW - это коллекция инструментов для сборки приложений в EXE. CMake - это система сборки приложений. Здесь описаны базовые шаги для старта программирования с помощью CMake и. . .
Как дизайн сайта влияет на конверсию: 7 решений, которые реально повышают заявки
Neotwalker 08.03.2026
Многие до сих пор воспринимают дизайн сайта как “красивую оболочку”. На практике всё иначе: дизайн напрямую влияет на то, оставит человек заявку или уйдёт через несколько секунд. Даже если у вас. . .
Модульная разработка через nuget packages
DevAlt 07.03.2026
Сложившийся в . Net-среде способ разработки чаще всего предполагает монорепозиторий в котором находятся все исходники. При создании нового решения, мы просто добавляем нужные проекты и имеем. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru