Регистрация Главная Сообщество
Сообщения за день Справка Регистрация
Навигация
Zhyk.org LIVE! Реклама на Zhyk.org Правила Форума Награды и достижения Доска "почета"

Закрытая тема
 
Опции темы
Старый 17.05.2012, 07:17   #1
 Разведчик
Аватар для star4ik
 
star4ik никому не известный тип
Регистрация: 03.07.2011
Сообщений: 15
Популярность: 10
Сказал(а) спасибо: 3
Поблагодарили 0 раз(а) в 0 сообщениях
Отправить сообщение для star4ik с помощью Skype™
 
По умолчанию бот для "хождение" по ссылкам [в]контакте

Суть программы: бот логинится в [в]контакте, после этого бот "ходит" по ссылкам [в]контакта, таким как "http://vk.com/feed" или "http://vk.com/groups" и главное что бы исходники этих страниц сохранялись.
Просьба сильно не критиковать, так как студент и только начинаю вникать в программирование.
Проблема состоит в том что авторизация происходит, а вот проходя по ссылке ничего не изменяется, то есть что авторизация была, что её не было, разницы нет.
Прошу дополнить/изменить код, ну или объяснить что к чему.

Ниже приведенный код взял у Cherinho вот это тема (http://zhyk.ru/forum/showthread.php?t=163583)
Цитата:
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Text;
using System.Net;
using System.IO;
using System.Text.RegularExpressions;

namespace ConsoleApplication1
{
class Program
{

public static void Main()
{
string sid;
Cookie cook;
string mail = "почта@mail.ru";
string pass = "пароль";
//создаем запрос
HttpWebRequest wrGETURL = (HttpWebRequest)System.Net.WebRequest.Create("http ://vk.com/login.php?m=1&email=" + mail + "&pass=" + pass);
//выставляем значения Headers
//Запрещаем редирект
wrGETURL.AllowAutoRedirect = false;
//Выставляем таймаут
wrGETURL.Timeout = 100000;
//получаем Headers,пришедшие в ответе
string headers = wrGETURL.GetResponse().Headers.ToString();
//получаем весь ответ
HttpWebResponse myHttpWebResponse = (HttpWebResponse)wrGETURL.GetResponse();
//записываем ответ в поток
StreamReader myStreamReadermy = new StreamReader(myHttpWebResponse.GetResponseStream() , Encoding.GetEncoding(1251));
//запихиваем ответ в строку
string page = myStreamReadermy.ReadToEnd();
//это регулярное выражение,которое выдирает из переменной headers(а ее мы получили выше) значение sid
Regex sidregex = new Regex("sid=([a-z0-9]+); exp");
Match ssid = sidregex.Match(headers);
sid = ssid.Groups[1].Value;
//инициализируем куки
cook = new Cookie("remixsid", sid);
//тоже самое,куки пишем
cook.Domain = "vk.com";
//проверяем,получили ли мы нужную переменную в куки
if (String.IsNullOrEmpty(sid))
Console.WriteLine("Чето не получается авторизироваться");
else
{
Console.WriteLine("Успешно авторизировались");
System.Net.WebRequest reqGET1 = System.Net.WebRequest.Create(@"http://vk.com/groups");
System.Net.WebResponse resp1 = reqGET1.GetResponse();
Stream stream1 = resp1.GetResponseStream();
StreamReader sr1 = new StreamReader(stream1);
string s1 = sr1.ReadToEnd();
StreamWriter f = new StreamWriter("c:\\txt.html");
f.Write(s1);
}
}
}
}

 
Старый 17.05.2012, 08:16   #2
 Разведчик
Аватар для Буянь
 
Буянь блестящий пример для подражанияБуянь блестящий пример для подражанияБуянь блестящий пример для подражанияБуянь блестящий пример для подражанияБуянь блестящий пример для подражанияБуянь блестящий пример для подражанияБуянь блестящий пример для подражанияБуянь блестящий пример для подражанияБуянь блестящий пример для подражанияБуянь блестящий пример для подражанияБуянь блестящий пример для подражания
Регистрация: 05.03.2011
Сообщений: 20
Популярность: 1883
Сказал(а) спасибо: 13
Поблагодарили 44 раз(а) в 36 сообщениях
Отправить сообщение для Буянь с помощью Skype™
 
По умолчанию Re: бот для "хождение" по ссылкам [в]контакте

Цитата:
Сообщение от star4ikПосмотреть сообщение
Суть программы: бот логинится в [в]контакте, после этого бот "ходит" по ссылкам [в]контакта, таким как "http://vk.com/feed" или "http://vk.com/groups" и главное что бы исходники этих страниц сохранялись.
Просьба сильно не критиковать, так как студент и только начинаю вникать в программирование.
Проблема состоит в том что авторизация происходит, а вот проходя по ссылке ничего не изменяется, то есть что авторизация была, что её не было, разницы нет.
Прошу дополнить/изменить код, ну или объяснить что к чему.

Ниже приведенный код взял у Cherinho вот это тема (http://zhyk.ru/forum/showthread.php?t=163583)

По-моему этот способ уже не работает ._.
 
Старый 17.05.2012, 08:20   #3
 Разведчик
Аватар для star4ik
 
star4ik никому не известный тип
Регистрация: 03.07.2011
Сообщений: 15
Популярность: 10
Сказал(а) спасибо: 3
Поблагодарили 0 раз(а) в 0 сообщениях
Отправить сообщение для star4ik с помощью Skype™
 
По умолчанию Re: бот для "хождение" по ссылкам [в]контакте

Не ну рас программа написала что я "Успешно авторизировались" то мне кажется, что с авторизацией всё нормально. На моё мнение проблема именно с переходом на ссылку "http://vk.com/groups".
Да, ещё и с кодировкой проблема, уже и юникод ставил, всё равно на каком то "китайском" написанно.
 
Старый 17.05.2012, 09:41   #4
 Сержант
Аватар для Yukikaze
 
Yukikaze в состоянии испепелить взглядомYukikaze в состоянии испепелить взглядомYukikaze в состоянии испепелить взглядомYukikaze в состоянии испепелить взглядомYukikaze в состоянии испепелить взглядомYukikaze в состоянии испепелить взглядомYukikaze в состоянии испепелить взглядомYukikaze в состоянии испепелить взглядомYukikaze в состоянии испепелить взглядомYukikaze в состоянии испепелить взглядомYukikaze в состоянии испепелить взглядом
Регистрация: 01.10.2011
Сообщений: 128
Популярность: 5723
Сказал(а) спасибо: 25
Поблагодарили 174 раз(а) в 105 сообщениях
 
По умолчанию Re: бот для "хождение" по ссылкам [в]контакте

Вот набросал тебе небольшой класс для ознакомления
Код:
using System;
using System.IO;
using System.Net;
using System.Text;
using System.Text.RegularExpressions;

namespace VKTraveler
{
    class Program
    {
        static void Main()
        {
            VK client = new VK("user", "password");
            Console.WriteLine(client.LogIn() ? "Login complete!" : "Login failed!");
            Console.WriteLine("Content length is {0}", client.Request("http://vk.com/feed").ContentLength);
            client.WriteToFile("curentPage.html");
            Console.WriteLine("Press any key to continue...");
            Console.ReadKey(true);
        }
    }

    class VK
    {
        public string User { get; set; }
        public string Password { get; set; }
        public string CurentPage { get; set; }
        private CookieContainer cookie { get; set; }

        public VK(string user, string password)
        {
            this.User = user;
            this.Password = password;
            this.cookie = new CookieContainer();
        }

        public bool LogIn()
        {
            HttpWebRequest request = (HttpWebRequest)WebRequest.Create(string.Format("http://vk.com/login.php?m=1&email={0}&pass={1}", this.User, this.Password));
            request.AllowAutoRedirect = false;
            request.CookieContainer = cookie;

            HttpWebResponse responce = (HttpWebResponse)request.GetResponse();
            string headers = responce.Headers.ToString();
            string sid = new Regex("sid=([a-z0-9]+); exp").Match(headers).Groups[1].Value;
            if (string.IsNullOrEmpty(sid))
                return false;
            return true;
        }

        public HttpWebResponse Request(string url)
        {
            HttpWebRequest request = (HttpWebRequest)WebRequest.Create(url);
            request.AllowAutoRedirect = false;
            request.CookieContainer = cookie;

            HttpWebResponse responce = (HttpWebResponse)request.GetResponse();
            StreamReader reader = new StreamReader(responce.GetResponseStream(), Encoding.GetEncoding(1251));
            this.CurentPage = reader.ReadToEnd();
            return responce;
        }

        public void WriteToFile(string filename)
        {
            using (StreamWriter writer = new StreamWriter(filename, false, Encoding.UTF8))
            {
                writer.Write(this.CurentPage);
            }
        }
    }
}
________________
Talk is cheap. Show me the code
— Linus Torvalds
 
Старый 17.05.2012, 09:49   #5
 Разведчик
Аватар для star4ik
 
star4ik никому не известный тип
Регистрация: 03.07.2011
Сообщений: 15
Популярность: 10
Сказал(а) спасибо: 3
Поблагодарили 0 раз(а) в 0 сообщениях
Отправить сообщение для star4ik с помощью Skype™
 
По умолчанию Re: бот для "хождение" по ссылкам [в]контакте

Вот что выбил компилятор:
Цитата:
Error 3 'VKTraveler.VK.Password.get' must declare a body because it is not marked abstract or extern C:\Documents and Settings\Артур\Рабочий стол\777\ConsoleApplication1\ConsoleApplication1\P rogram.cs 25 34 ConsoleApplication1


Последний раз редактировалось star4ik; 17.05.2012 в 09:53.
 
Старый 17.05.2012, 13:20   #6
 Сержант
Аватар для Yukikaze
 
Yukikaze в состоянии испепелить взглядомYukikaze в состоянии испепелить взглядомYukikaze в состоянии испепелить взглядомYukikaze в состоянии испепелить взглядомYukikaze в состоянии испепелить взглядомYukikaze в состоянии испепелить взглядомYukikaze в состоянии испепелить взглядомYukikaze в состоянии испепелить взглядомYukikaze в состоянии испепелить взглядомYukikaze в состоянии испепелить взглядомYukikaze в состоянии испепелить взглядом
Регистрация: 01.10.2011
Сообщений: 128
Популярность: 5723
Сказал(а) спасибо: 25
Поблагодарили 174 раз(а) в 105 сообщениях
 
По умолчанию Re: бот для "хождение" по ссылкам [в]контакте

Понятно...проще проект выложить. [Ссылки могут видеть только зарегистрированные пользователи. ]
________________
Talk is cheap. Show me the code
— Linus Torvalds
 
Пользователь сказал cпасибо:
Fartuna (29.05.2012)
Старый 20.07.2012, 22:24   #7
 Разведчик
Аватар для Gogia
 
Gogia никому не известный тип
Регистрация: 20.07.2012
Сообщений: 2
Популярность: 10
Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
 
По умолчанию Re: бот для "хождение" по ссылкам [в]контакте

star4ik, (автор) а почему для своего проекта вы решили использовать WebRequest? Почему бы не взять более удобный WebClient?
 
Закрытая тема


Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.

Быстрый переход

Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
[Информация] """""""""""Лучшая тема по итогам голосования"""""""""" +ESEL- Общение и обсуждение, архив Point Blank 0 16.04.2011 09:12
[Руководство] "Воизбежание"-"Логин в прцессе подключения"+"Дисконект при выборе сервера" K.Rezonans Баги, читы и статьи по Point Blank 19 27.06.2010 02:24

Заявление об ответственности / Список мошенников

Часовой пояс GMT +4, время: 21:39.

Пишите нам: [email protected]
Copyright © 2024 vBulletin Solutions, Inc.
Translate: zCarot. Webdesign by DevArt (Fox)
G-gaMe! Team production | Since 2008
Hosted by GShost.net