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

Ответ
 
Опции темы
Старый 28.04.2011, 18:14   #1
Читер-спонсор
 Рыцарь-защитник
Аватар для Hermein
 
Hermein сломал счётчик популярности :(Hermein сломал счётчик популярности :(Hermein сломал счётчик популярности :(Hermein сломал счётчик популярности :(Hermein сломал счётчик популярности :(Hermein сломал счётчик популярности :(Hermein сломал счётчик популярности :(Hermein сломал счётчик популярности :(Hermein сломал счётчик популярности :(Hermein сломал счётчик популярности :(Hermein сломал счётчик популярности :(
Регистрация: 14.01.2011
Сообщений: 633
Популярность: 28087
Золото Zhyk.Ru: 1
Сказал(а) спасибо: 90
Поблагодарили 717 раз(а) в 374 сообщениях
Отправить сообщение для Hermein с помощью ICQ Отправить сообщение для Hermein с помощью Skype™
 
По умолчанию Парсинг запросов

Каждый день задается очень много вопросов по поводу того, как например достать число убийств боссов, количество папирос и тому подобное, так вот все очень просто Пишем процедуру я назвал ее parse:
Код:
string res;
private string parse(string text, string ind1, string ind2)
        {
            res = "";//зануляем
            string[] stringSeparators = new string[] { "\n" };
            string[] result = text.Split(stringSeparators, StringSplitOptions.RemoveEmptyEntries);
            foreach (string stroka in result)
            {if (stroka.IndexOf(ind1) != -1)
                {string[] Moneyy = stroka.ToString().Split((Convert.ToChar(">")));
                 res = Moneyy[1].Replace(ind2, "");
            }
            }
            return res;
        }
где text - это текст который надо распарсить,ind1,ind2-место откуда начать/где закончить

далее отправляем запрос:
Счелкаем 2 раза по кнопке и вставляем туда код:
Код:
String s1 = "key=" + textBox2.Text + "&user=" + textBox1.Text + "&method=getInfo";
            HttpWebRequest request = (HttpWebRequest)WebRequest.Create("http://109.234.155.198/prison/universal.php?getInfo");
            request.UserAgent = "Opera/9.80";
            request.Method = "POST";
            request.ContentType = "application/x-www-form-urlencoded";
            byte[] EncodedPostParams = Encoding.ASCII.GetBytes(s1);
            request.ContentLength = EncodedPostParams.Length;
            request.GetRequestStream().Write(EncodedPostParams, 0, EncodedPostParams.Length);
            request.GetRequestStream().Close();
            // Получаем ответ
            HttpWebResponse response = (HttpWebResponse)request.GetResponse();
            //Получаем html-код страницы
            string html= new StreamReader(response.GetResponseStream(), Encoding.UTF8).ReadToEnd();
//После чего с помощью процедуры parse можем достать из запроса абсолютно любое значение:

label1.Text = "Энергия: " + parse(html, "<energy>", "</energy");
label2.Text = "Папиросы: " + parse(html, "<money>", "</money");
label3.Text = "Борода: " + parse(html, "<beard>", "</beard");
Сразу встает вопрос а как же вытащить боссов ведь там же одинаковые переменные??? Существует много способов, но я скажу о самом простом:
итак после того как вытащили все что нужно делаем следующее:

Код:
int k=html.IndexOf("<bossId>2</bossId>");
string boss1=html.Remove(0,k);
/*выше описанным методом пользуемся и достаем победы второго босса но используя text не html а boss1*/
label4.Text = "Сизый: " + parse(boss1, "<winCount>", "</winCount");
добавляем так же неймспейсы:

using System.IO;
using System.Net;

Вот в принципе и все!

Последний раз редактировалось Hermein; 07.05.2011 в 14:37.
  Ответить с цитированием
16 пользователя(ей) сказали cпасибо:
Ar4i[Work] (08.09.2011), bohdan09 (07.05.2011), золі (29.06.2011), IIIypuk (29.06.2011), KiRo_Lajt (19.11.2013), kostyakostya666 (01.09.2011), ma_za_xa_ka (19.06.2011), nikitoz (05.05.2011), OnSidePB (29.04.2011), OrBiT_DaRk (11.12.2011), PrOveN (13.09.2011), skinni (06.05.2011), StabiliZator (28.04.2011), warl0ck (19.07.2011), XRASER (26.06.2011), _MykytiuK_ (01.05.2011)
Старый 28.04.2011, 18:19   #2
 Пехотинец
Аватар для StabiliZator
 
StabiliZator неизвестен в этих краяхStabiliZator неизвестен в этих краях
Регистрация: 05.10.2010
Сообщений: 67
Популярность: -129
Сказал(а) спасибо: 29
Поблагодарили 19 раз(а) в 12 сообщениях
Отправить сообщение для StabiliZator с помощью ICQ Отправить сообщение для StabiliZator с помощью Skype™
 
По умолчанию Re: Парсинг запросов

Можешь полностью код написать на одного босса что бы статистика высвечивалась

Последний раз редактировалось StabiliZator; 28.04.2011 в 18:37.
  Ответить с цитированием
Старый 28.04.2011, 19:07   #3
Читер-спонсор
 Рыцарь-защитник
Аватар для Hermein
 
Hermein сломал счётчик популярности :(Hermein сломал счётчик популярности :(Hermein сломал счётчик популярности :(Hermein сломал счётчик популярности :(Hermein сломал счётчик популярности :(Hermein сломал счётчик популярности :(Hermein сломал счётчик популярности :(Hermein сломал счётчик популярности :(Hermein сломал счётчик популярности :(Hermein сломал счётчик популярности :(Hermein сломал счётчик популярности :(
Регистрация: 14.01.2011
Сообщений: 633
Популярность: 28087
Золото Zhyk.Ru: 1
Сказал(а) спасибо: 90
Поблагодарили 717 раз(а) в 374 сообщениях
Отправить сообщение для Hermein с помощью ICQ Отправить сообщение для Hermein с помощью Skype™
 
По умолчанию Re: Парсинг запросов

Цитата:
Сообщение от StabiliZatorПосмотреть сообщение
Можешь полностью код написать на одного босса что бы статистика высвечивалась

Я же написал с самого начала выводишь - я пример привел в лэйблы до кирпича включительно потом все что до второго босса удаляешь
В примере я же написал-Сизый-а это уже второй босс
  Ответить с цитированием
2 пользователя(ей) сказали cпасибо:
Ar4i[Work] (08.09.2011), StabiliZator (29.04.2011)
Старый 28.04.2011, 19:16   #4
 Пехотинец
Аватар для _MykytiuK_
 
_MykytiuK_ скоро будет известен_MykytiuK_ скоро будет известен_MykytiuK_ скоро будет известен_MykytiuK_ скоро будет известен_MykytiuK_ скоро будет известен
Регистрация: 12.04.2011
Сообщений: 98
Популярность: 435
Сказал(а) спасибо: 132
Поблагодарили 81 раз(а) в 49 сообщениях
Отправить сообщение для _MykytiuK_ с помощью ICQ
 
По умолчанию Re: Парсинг запросов

Вот такая ошибка:
[Ссылки могут видеть только зарегистрированные пользователи. ]
что делать?
________________

Уважаемые пользователи соблюдайте Правила Форума
  Ответить с цитированием
Старый 28.04.2011, 19:41   #5
 Пехотинец
Аватар для StabiliZator
 
StabiliZator неизвестен в этих краяхStabiliZator неизвестен в этих краях
Регистрация: 05.10.2010
Сообщений: 67
Популярность: -129
Сказал(а) спасибо: 29
Поблагодарили 19 раз(а) в 12 сообщениях
Отправить сообщение для StabiliZator с помощью ICQ Отправить сообщение для StabiliZator с помощью Skype™
 
По умолчанию Re: Парсинг запросов

выдели её, наведи на нее, появится иконка и там будет написано сделать заглушку
  Ответить с цитированием
Старый 28.04.2011, 19:51   #6
Читер-спонсор
 Рыцарь-защитник
Аватар для Hermein
 
Hermein сломал счётчик популярности :(Hermein сломал счётчик популярности :(Hermein сломал счётчик популярности :(Hermein сломал счётчик популярности :(Hermein сломал счётчик популярности :(Hermein сломал счётчик популярности :(Hermein сломал счётчик популярности :(Hermein сломал счётчик популярности :(Hermein сломал счётчик популярности :(Hermein сломал счётчик популярности :(Hermein сломал счётчик популярности :(
Регистрация: 14.01.2011
Сообщений: 633
Популярность: 28087
Золото Zhyk.Ru: 1
Сказал(а) спасибо: 90
Поблагодарили 717 раз(а) в 374 сообщениях
Отправить сообщение для Hermein с помощью ICQ Отправить сообщение для Hermein с помощью Skype™
 
По умолчанию Re: Парсинг запросов

Вы че какую заглушку с ума сошли что ли???

Добавлено через 2 минуты
Цитата:
Сообщение от _MykytiuK_Посмотреть сообщение
Вот такая ошибка:
[Ссылки могут видеть только зарегистрированные пользователи. ]
что делать?

Пишет что parse не существует! А ты процедуру parse добавил???
Руководство внимательнее читаем!

[Ссылки могут видеть только зарегистрированные пользователи. ]

Последний раз редактировалось Hermein; 28.04.2011 в 19:55. Причина: Добавлено сообщение
  Ответить с цитированием
3 пользователя(ей) сказали cпасибо:
Ar4i[Work] (08.09.2011), skinni (06.05.2011), _MykytiuK_ (01.05.2011)
Старый 28.04.2011, 20:06   #7
Читер-спонсор
 Рыцарь-защитник
Аватар для Hermein
 
Hermein сломал счётчик популярности :(Hermein сломал счётчик популярности :(Hermein сломал счётчик популярности :(Hermein сломал счётчик популярности :(Hermein сломал счётчик популярности :(Hermein сломал счётчик популярности :(Hermein сломал счётчик популярности :(Hermein сломал счётчик популярности :(Hermein сломал счётчик популярности :(Hermein сломал счётчик популярности :(Hermein сломал счётчик популярности :(
Регистрация: 14.01.2011
Сообщений: 633
Популярность: 28087
Золото Zhyk.Ru: 1
Сказал(а) спасибо: 90
Поблагодарили 717 раз(а) в 374 сообщениях
Отправить сообщение для Hermein с помощью ICQ Отправить сообщение для Hermein с помощью Skype™
 
По умолчанию Re: Парсинг запросов

Цитата:
Сообщение от StabiliZatorПосмотреть сообщение
выдели её, наведи на нее, появится иконка и там будет написано сделать заглушку

Откуда ты это придумал заглушку делать???
А процедура parse для чего дана???
  Ответить с цитированием
Старый 28.04.2011, 20:23   #8
Читер-спонсор
 Рыцарь-защитник
Аватар для Nickitee
 
Nickitee сломал счётчик популярности :(Nickitee сломал счётчик популярности :(Nickitee сломал счётчик популярности :(Nickitee сломал счётчик популярности :(Nickitee сломал счётчик популярности :(Nickitee сломал счётчик популярности :(Nickitee сломал счётчик популярности :(Nickitee сломал счётчик популярности :(Nickitee сломал счётчик популярности :(Nickitee сломал счётчик популярности :(Nickitee сломал счётчик популярности :(
Регистрация: 28.08.2009
Сообщений: 603
Популярность: 19129
Золото Zhyk.Ru: 500
Сказал(а) спасибо: 84
Поблагодарили 602 раз(а) в 321 сообщениях
 
По умолчанию Re: Парсинг запросов

Код:
      private string parse(string ishodnik, string scan)
        {
            string[] stringSeparators = new string[] { "\n" };
            string[] result = ishodnik.Split(stringSeparators, StringSplitOptions.RemoveEmptyEntries);
            foreach (string stroka in result)
            {
                if (stroka.IndexOf(scan) != -1)
                {
                    string[] Massiv = stroka.ToString().Split((Convert.ToChar(">")));
                    string Finish = Massiv[0].ToString().Replace("<", "");
                    scan = Massiv[1].Replace(@"</" + Finish, "");
                }
            }
            return scan;
        }
Улучшенная версия "парсинга".
Теперь надо только указать что искать, очченььь просто.
Пример:
Код:
            string htmlPage = "<bossId>2</bossId>";
            MessageBox.Show(parse(htmlPage, "bossId"));
P.S. Адаптировано только для ВК-Тюряги.
Если внимательно изучить код, можно настроить и для своих нужд.
________________
We are Ducks. We are birds. We like bread. We cryack. Cryack.

Последний раз редактировалось Nickitee; 28.04.2011 в 20:26.
  Ответить с цитированием
2 пользователя(ей) сказали cпасибо:
Ar4i[Work] (08.09.2011), nikitoz (28.04.2011)
Старый 29.04.2011, 12:35   #9
Читер-спонсор
 Рыцарь-защитник
Аватар для Hermein
 
Hermein сломал счётчик популярности :(Hermein сломал счётчик популярности :(Hermein сломал счётчик популярности :(Hermein сломал счётчик популярности :(Hermein сломал счётчик популярности :(Hermein сломал счётчик популярности :(Hermein сломал счётчик популярности :(Hermein сломал счётчик популярности :(Hermein сломал счётчик популярности :(Hermein сломал счётчик популярности :(Hermein сломал счётчик популярности :(
Регистрация: 14.01.2011
Сообщений: 633
Популярность: 28087
Золото Zhyk.Ru: 1
Сказал(а) спасибо: 90
Поблагодарили 717 раз(а) в 374 сообщениях
Отправить сообщение для Hermein с помощью ICQ Отправить сообщение для Hermein с помощью Skype™
 
По умолчанию Re: Парсинг запросов

Цитата:
Сообщение от NickiteeПосмотреть сообщение
Код:
      private string parse(string ishodnik, string scan)
        {
            string[] stringSeparators = new string[] { "\n" };
            string[] result = ishodnik.Split(stringSeparators, StringSplitOptions.RemoveEmptyEntries);
            foreach (string stroka in result)
            {
                if (stroka.IndexOf(scan) != -1)
                {
                    string[] Massiv = stroka.ToString().Split((Convert.ToChar(">")));
                    string Finish = Massiv[0].ToString().Replace("<", "");
                    scan = Massiv[1].Replace(@"</" + Finish, "");
                }
            }
            return scan;
        }
Улучшенная версия "парсинга".
Теперь надо только указать что искать, очченььь просто.
Пример:
Код:
            string htmlPage = "<bossId>2</bossId>";
            MessageBox.Show(parse(htmlPage, "bossId"));
P.S. Адаптировано только для ВК-Тюряги.
Если внимательно изучить код, можно настроить и для своих нужд.

Это для тюряги хорошо, но если теги не равны то эта процедура не прокатит, она более сжатая, как например инфу о кореше узнать его победах над боссами можно используя только парс, что я дал выше, и вообще это просто пример небольшой
  Ответить с цитированием
Старый 29.04.2011, 13:45   #10
 Пехотинец
Аватар для StabiliZator
 
StabiliZator неизвестен в этих краяхStabiliZator неизвестен в этих краях
Регистрация: 05.10.2010
Сообщений: 67
Популярность: -129
Сказал(а) спасибо: 29
Поблагодарили 19 раз(а) в 12 сообщениях
Отправить сообщение для StabiliZator с помощью ICQ Отправить сообщение для StabiliZator с помощью Skype™
 
По умолчанию Re: Парсинг запросов

можете полностью код написать что бы высвечивалась статистика боссов, а не по частям! а то вставляю а не чего не выходит!
  Ответить с цитированием
Старый 29.04.2011, 16:32   #11
Читер-спонсор
 Рыцарь-защитник
Аватар для Hermein
 
Hermein сломал счётчик популярности :(Hermein сломал счётчик популярности :(Hermein сломал счётчик популярности :(Hermein сломал счётчик популярности :(Hermein сломал счётчик популярности :(Hermein сломал счётчик популярности :(Hermein сломал счётчик популярности :(Hermein сломал счётчик популярности :(Hermein сломал счётчик популярности :(Hermein сломал счётчик популярности :(Hermein сломал счётчик популярности :(
Регистрация: 14.01.2011
Сообщений: 633
Популярность: 28087
Золото Zhyk.Ru: 1
Сказал(а) спасибо: 90
Поблагодарили 717 раз(а) в 374 сообщениях
Отправить сообщение для Hermein с помощью ICQ Отправить сообщение для Hermein с помощью Skype™
 
По умолчанию Re: Парсинг запросов

Цитата:
Сообщение от StabiliZatorПосмотреть сообщение
можете полностью код написать что бы высвечивалась статистика боссов, а не по частям! а то вставляю а не чего не выходит!

Код:
string res;
        private string parse(string text, string ind1, string ind2)
        {   res = "";
            string[] stringSeparators = new string[] { "\n" };
            string[] result = text.Split(stringSeparators, StringSplitOptions.RemoveEmptyEntries);
            foreach (string stroka in result)
            {if (stroka.IndexOf(ind1) != -1)
                {string[] Moneyy = stroka.ToString().Split((Convert.ToChar(">")));
                 res = Moneyy[1].Replace(ind2, "");
            }
            }
            return res;
         }
        private void button3_Click(object sender, EventArgs e)
        {String secondStepForm = "method=getFriendModels" + "&user=" + textBox1.Text + "&key=" + textBox2.Text + "&friend%5Fuid=" + textBox3.Text;
            HttpWebRequest request = (HttpWebRequest)WebRequest.Create("http://109.234.155.198/prison/universal.php?getFriendModels");
            request.UserAgent = "Opera/9.80";
            request.Method = "POST";
            request.ContentType = "application/x-www-form-urlencoded";
            byte[] EncodedPostParams = Encoding.ASCII.GetBytes(secondStepForm);
            request.ContentLength = EncodedPostParams.Length;
            request.GetRequestStream().Write(EncodedPostParams, 0, EncodedPostParams.Length);
            request.GetRequestStream().Close();
            // Получаем ответ
            HttpWebResponse response = (HttpWebResponse)request.GetResponse();
            string html = new StreamReader(response.GetResponseStream(), Encoding.UTF8).ReadToEnd();
            string boss1 = parse(html, "<boss id=\"1\">", "</boss");
            string boss2 = parse(html, "<boss id=\"2\">", "</boss");
            string boss3 = parse(html, "<boss id=\"3\">", "</boss");
            string boss4 = parse(html, "<boss id=\"4\">", "</boss");
            string boss5 = parse(html, "<boss id=\"5\">", "</boss");
            richTextBox1.Text += "Кирпич:" + boss1 + "\n" + "Сизый:" + boss2 + "\n" + "Махно:" + boss3 + "\n" + "Лютый:" + boss4 + "\n" + "Шайба:" + boss5 + "\n";
        }
Процедура parse и вывод инфы о боссах в richTextbox1 по нажатию button3
  Ответить с цитированием
2 пользователя(ей) сказали cпасибо:
Ar4i[Work] (08.09.2011), StabiliZator (29.04.2011)
Старый 29.04.2011, 16:57   #12
 Пехотинец
Аватар для StabiliZator
 
StabiliZator неизвестен в этих краяхStabiliZator неизвестен в этих краях
Регистрация: 05.10.2010
Сообщений: 67
Популярность: -129
Сказал(а) спасибо: 29
Поблагодарили 19 раз(а) в 12 сообщениях
Отправить сообщение для StabiliZator с помощью ICQ Отправить сообщение для StabiliZator с помощью Skype™
 
По умолчанию Re: Парсинг запросов

[Ссылки могут видеть только зарегистрированные пользователи. ]
что делать
и для чего
textBox3.Text
  Ответить с цитированием
Старый 29.04.2011, 17:10   #13
Читер-спонсор
 Рыцарь-защитник
Аватар для Hermein
 
Hermein сломал счётчик популярности :(Hermein сломал счётчик популярности :(Hermein сломал счётчик популярности :(Hermein сломал счётчик популярности :(Hermein сломал счётчик популярности :(Hermein сломал счётчик популярности :(Hermein сломал счётчик популярности :(Hermein сломал счётчик популярности :(Hermein сломал счётчик популярности :(Hermein сломал счётчик популярности :(Hermein сломал счётчик популярности :(
Регистрация: 14.01.2011
Сообщений: 633
Популярность: 28087
Золото Zhyk.Ru: 1
Сказал(а) спасибо: 90
Поблагодарили 717 раз(а) в 374 сообщениях
Отправить сообщение для Hermein с помощью ICQ Отправить сообщение для Hermein с помощью Skype™
 
По умолчанию Re: Парсинг запросов

Цитата:
Сообщение от StabiliZatorПосмотреть сообщение
[Ссылки могут видеть только зарегистрированные пользователи. ]
что делать
и для чего
textBox3.Text

Ты готовый код не можешь уже выделить! в самый верх смотри видешь объявлена стринг res???? а у тебя в коде я ее не заметил!
3 текстбокс-это у кого ты хочешь посмотреть, если у себя то в коде вместо 3 бокса напиши textBox1.Text
  Ответить с цитированием
Старый 01.05.2011, 11:22   #14
 Пехотинец
Аватар для _MykytiuK_
 
_MykytiuK_ скоро будет известен_MykytiuK_ скоро будет известен_MykytiuK_ скоро будет известен_MykytiuK_ скоро будет известен_MykytiuK_ скоро будет известен
Регистрация: 12.04.2011
Сообщений: 98
Популярность: 435
Сказал(а) спасибо: 132
Поблагодарили 81 раз(а) в 49 сообщениях
Отправить сообщение для _MykytiuK_ с помощью ICQ
 
По умолчанию Re: Парсинг запросов

hermein, спасибо очень-очень помог

Добавлено через 11 часов 23 минуты
С этим то понятно, а я столкунлся вот с чем, как рaспарсить данные такова типа:
[Ссылки могут видеть только зарегистрированные пользователи. ]
________________

Уважаемые пользователи соблюдайте Правила Форума

Последний раз редактировалось _MykytiuK_; 01.05.2011 в 22:46. Причина: Добавлено сообщение
  Ответить с цитированием
Старый 05.05.2011, 12:12   #15
Читер-спонсор
 Рыцарь-защитник
Аватар для Hermein
 
Hermein сломал счётчик популярности :(Hermein сломал счётчик популярности :(Hermein сломал счётчик популярности :(Hermein сломал счётчик популярности :(Hermein сломал счётчик популярности :(Hermein сломал счётчик популярности :(Hermein сломал счётчик популярности :(Hermein сломал счётчик популярности :(Hermein сломал счётчик популярности :(Hermein сломал счётчик популярности :(Hermein сломал счётчик популярности :(
Регистрация: 14.01.2011
Сообщений: 633
Популярность: 28087
Золото Zhyk.Ru: 1
Сказал(а) спасибо: 90
Поблагодарили 717 раз(а) в 374 сообщениях
Отправить сообщение для Hermein с помощью ICQ Отправить сообщение для Hermein с помощью Skype™
 
По умолчанию Re: Парсинг запросов

Цитата:
Сообщение от _MykytiuK_Посмотреть сообщение
hermein, спасибо очень-очень помог

Добавлено через 11 часов 23 минуты
С этим то понятно, а я столкунлся вот с чем, как рaспарсить данные такова типа:
[Ссылки могут видеть только зарегистрированные пользователи. ]

IndexOf-ом ищешь нужное место и до него удаляешь либо сабстринг
  Ответить с цитированием
Ответ


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

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

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

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

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

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