PDA

Просмотр полной версии : Вотпрос по C# с открытием адресов по очереди


leaderru
10.06.2010, 08:36
Подскажите пожалуйста как на C# сделать программу, которая будет открывать сайты по очереди.

Короче, Программа должна открывать заданные страницы, браузером начиная от

http://primer.ru/76560000000000000

и до

http://primer.ru/76569999999999999

После открытия страницы, открывать следующую, с интервалом +1 страница

geniusz
10.06.2010, 11:34
Старое сайтом при открытии следующего должно закрываться или нет?

leaderru
10.06.2010, 15:22
нет

eLWAux
10.06.2010, 16:30
int i = 0;
for (i=0; i<=9999; i++)
{
string page = GET("http://primer.ru/"+Convert.ToString(i));
}
тебе остается написать ф-цию GET которая будет скачивать страницу..

zORG
10.06.2010, 17:43
string GET(string url)
{
WebRequest req = WebRequest.Create(url);
WebResponse resp = req.GetResponse();
Stream stream = resp.GetResponseStream();
StreamReader sr = new StreamReader(stream);
string s = sr.ReadToEnd();
return s;
}

.ATK
10.06.2010, 17:59
for(int i=76560000000000000;i<76569999999999999;i++)
{
unsafe(WebClient wb=new WebClient())
{
wb.DownloadString ("http://primer.ru/"+i);
}
}

d_x
10.06.2010, 18:55
for(int i=76560000000000000;i<76569999999999999;i++)
{
unsafe(WebClient wb=new WebClient())
{
wb.DownloadString ("http://primer.ru/"+i);
}
}
Осталось только вспомнить, что signed int принимает максимальное значение 2147483647 :)

Bers
10.06.2010, 19:10
for(int i=76560000000000000;i<76569999999999999;i++)
{
unsafe(WebClient wb=new WebClient())
{
wb.DownloadString ("http://primer.ru/"+i);
}
}

Осталось только вспомнить, что signed int принимает максимальное значение 2147483647 :)
А также вспомнить синтаксис оператора unsafe :)

leaderru
10.06.2010, 19:13
Спасибо, а вот еще вопрос, как сделать программу чтобы четкий дипозон указывал я

Программа должна открывать страницы браузера из этих заданных диапазонов начиная с меньшего и заканчивая большим, открыв страницу нужно подтвердить всплывающие окно или же нажать Enter чтобы закрыть его и после этого добавится человек в стим, и продолжать открывать следующие страницы с таким же циклом

добавляется в стим человек по такой ссылке: steam://friends/add/76561198005049041

zORG
10.06.2010, 19:26
тут надо сниффером смотреть уже
fiddler2 например

Bers
10.06.2010, 19:28
Спасибо, а вот еще вопрос, как сделать программу чтобы четкий дипозон указывал я

Программа должна открывать страницы браузера из этих заданных диапазонов начиная с меньшего и заканчивая большим, открыв страницу нужно подтвердить всплывающие окно или же нажать Enter чтобы закрыть его и после этого добавится человек в стим, и продолжать открывать следующие страницы с таким же циклом

добавляется в стим человек по такой ссылке: steam://friends/add/76561198005049041

Я не вполне понял, что значит "указывал диапазон", но по идее это делается так:


void Foo(string uriTemplate, IEnumerable<string> codes)
{
foreach(var code in codes)
{
using(var client = new WebClient())
{
client.DownloadString(string.Format(uriTemplate, code));
}
}
}

...
// а здесь ты эту функцию используешь:
// первый параметр - шаблон адреса
// второй параметр - список кодов для подстановки в шаблон.
// например, string[], List<string>, что угодно
Foo(
"steam://friends/add/{0}",
new [] { "76561198005049041", "76561198005049041" } );


Это если я правильно понял задачу.
Кстати, не уверен, что WebClient будет работать с протоколом Steam.

UPD: Проверил - не работает. Тогда остается другой способ:

тут надо сниффером смотреть уже
fiddler2 например

Сниффаем трафик Steam-клиента, разбираемся, что и куда он отправляет, а затем переписываем функцию по такому принципу:


void Foo(string uriTemplate, IEnumerable<string> codes)
{
foreach(var code in codes)
{
using(var client = new WebClient())
{
var address = string.Format(uriTemplate, code);
// а здесь имитируем поведение Steam-клиента
}
}
}


Только, боюсь, там все будет сложно и запутано :)

UPD 2: Насколько я понял, тебе нужно отправлять команды вроде добавления друзей и т.п. клиенту Steam, запущенному на данной машине? Тогда можно попробовать импортировать функции из steam.dll и вызывать их.