Суть программы: бот логинится в [в]контакте, после этого бот "ходит" по ссылкам [в]контакта, таким как "http://vk.com/feed" или "http://vk.com/groups" и главное что бы исходники этих страниц сохранялись.
Просьба сильно не критиковать, так как студент и только начинаю вникать в программирование.
Проблема состоит в том что авторизация происходит, а вот проходя по ссылке ничего не изменяется, то есть что авторизация была, что её не было, разницы нет.
Прошу дополнить/изменить код, ну или объяснить что к чему.
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);
}
}
}
}
Суть программы: бот логинится в [в]контакте, после этого бот "ходит" по ссылкам [в]контакта, таким как "http://vk.com/feed" или "http://vk.com/groups" и главное что бы исходники этих страниц сохранялись.
Просьба сильно не критиковать, так как студент и только начинаю вникать в программирование.
Проблема состоит в том что авторизация происходит, а вот проходя по ссылке ничего не изменяется, то есть что авторизация была, что её не было, разницы нет.
Прошу дополнить/изменить код, ну или объяснить что к чему.
Не ну рас программа написала что я "Успешно авторизировались" то мне кажется, что с авторизацией всё нормально. На моё мнение проблема именно с переходом на ссылку "http://vk.com/groups".
Да, ещё и с кодировкой проблема, уже и юникод ставил, всё равно на каком то "китайском" написанно.
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.