Просмотр полной версии : Вотпрос по C# с открытием адресов по очереди
leaderru
10.06.2010, 08:36
Подскажите пожалуйста как на C# сделать программу, которая будет открывать сайты по очереди.
Короче, Программа должна открывать заданные страницы, браузером начиная от
http://primer.ru/76560000000000000
и до
http://primer.ru/76569999999999999
После открытия страницы, открывать следующую, с интервалом +1 страница
Старое сайтом при открытии следующего должно закрываться или нет?
leaderru
10.06.2010, 15:22
нет
int i = 0;
for (i=0; i<=9999; i++)
{
string page = GET("http://primer.ru/"+Convert.ToString(i));
}
тебе остается написать ф-цию GET которая будет скачивать страницу..
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;
}
for(int i=76560000000000000;i<76569999999999999;i++)
{
unsafe(WebClient wb=new WebClient())
{
wb.DownloadString ("http://primer.ru/"+i);
}
}
for(int i=76560000000000000;i<76569999999999999;i++)
{
unsafe(WebClient wb=new WebClient())
{
wb.DownloadString ("http://primer.ru/"+i);
}
}
Осталось только вспомнить, что signed int принимает максимальное значение 2147483647 :)
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
тут надо сниффером смотреть уже
fiddler2 например
Спасибо, а вот еще вопрос, как сделать программу чтобы четкий дипозон указывал я
Программа должна открывать страницы браузера из этих заданных диапазонов начиная с меньшего и заканчивая большим, открыв страницу нужно подтвердить всплывающие окно или же нажать 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 и вызывать их.
vBulletin® v3.8.14, Copyright ©2000-2026, vBulletin Solutions, Inc. Перевод: zCarot