Регистрация Главная Сообщество
Сообщения за день Справка Регистрация

Ответ
 
Опции темы
Старый 31.12.2012, 17:15   #1
 Разведчик
Аватар для zheka-zh
 
zheka-zh никому не известный тип
Регистрация: 11.11.2011
Сообщений: 19
Популярность: 10
Сказал(а) спасибо: 0
Поблагодарили 8 раз(а) в 5 сообщениях
 
Thumbs up Parse, и с чем его едят

Заранее извиняюсь перед Hlebnikov, если моя статья похожа не его)

Что ж, раз уж я взялся за браузерные приложения, то в этой статье я расскажу вам о парсинге. Итак, парсинг - это автоматизированный сбор контента или данных с какого-либо сайта или сервиса. Следовательно, программа или скрипт, собирающий информацию или же данные с какого либо сайта или приложения, называется парсером.

Фазы парсинга


Любой парсер состоит из трех частей, которые отвечают за три отдельных процесса парсинга:

1. Получение контента в исходном виде.

Под получением контента, чаще всего подразумевается скачивание кода веб-страницы, из которой необходимо извлечь данные или контент.

2.Извлечение и преобразование данных.

В этой фазе происходит извлечение требуемых данных из полученного, на первом этапе, кода страницы. Чаще всего для извлечения используют регулярные выражения. Также на этом этапе происходит преобразование извлеченных данных к нужному формату, если это требуется;

3.Генерация результата.

Завершающий этап парсинга. На нем происходит вывод или запись полученных, на втором этапе, данных, в требуемый формат. В нашем случае реализовывать вывод мы будем в label.

Что такое парсинг и с чем его едят мы разобрались.

Давайте попробуем реализовать выше написанное на приложении Тюряга.
Я конечно извиняюсь за некий фейк, так как подобная тема уже написана, но я попытаюсь ясно и кратко разжевать суть дела =)
Почему именно в Тюряге?) Потому что:
1) В Тюряге данные не захешированы.
2) Не нужно тратить много времени, копаясь в исходном коде.
[B]
Что ж приступим![/B

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

Далее, кидаем на форму:

2 ТеxtBox'a
1 Button
1 Label (для наглядности, вы можете делать сколько нужно)

Программа должна выглядеть примерно так:

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

Если же вы читали первый урок, то будет понятнее что и откуда брать, объяснять еще раз я не буду, поэтому переходим сразу к редактору кода и сразу же добавляем два неймспейса (using):
Код:
using System.IO;
using System.Net;
Далее пишем код:

Код:
namespace WindowsFormsApplication14
{
    public partial class Form1 : Form
    {
        public Form1()
        {
            InitializeComponent();
        }

        private void button1_Click(object sender, EventArgs e)
        {
            string id = textBox1.Text;
            string key = textBox2.Text;
            string PostString = this.post("http://109.234.155.196/prison/universal.php?getInfo", "&method=GetInfo&user" + id + "&key=" + key);
          
           this.label2.Text = this.parsing(PostString, "<money>", "</money");
        }
        private string post(string req, string url)
        {
            string sl = "&method=GetInfo&user=" + textBox1.Text + "&key=" + textBox2.Text;
            HttpWebRequest request = (HttpWebRequest) WebRequest.Create(req);
            

            request.UserAgent = "Opera/9.80";
            request.Method = "POST";
            request.ContentType = "application/x-www-form-urlencoded";
            byte[] getBytes = Encoding.ASCII.GetBytes(sl);
            request.ContentLength = getBytes.Length;
            request.GetRequestStream().Write(getBytes, 0, getBytes.Length);
            request.GetRequestStream().Close();
            HttpWebResponse response = (HttpWebResponse) request.GetResponse();
            return new StreamReader(response.GetResponseStream(), Encoding.UTF8).ReadToEnd();
        }

        string execute;

        private string parsing(string txt, string value1, string value2)
        {
            execute = "";
            string[] StringSeparation = new string[] { " \n " };
            string[] result = Text.ToString().Split(StringSeparation, StringSplitOptions.RemoveEmptyEntries);
            foreach (string str in result)
            {
                if (str.IndexOf(value1) != -1)
                {
                    string[] info = str.Split((Convert.ToChar(">")));
                    execute = info[1].Replace(value2, "");

                }

            }
            return execute;
        }
        
    }
}
Вот и все, теперь немного теории.

Мы отправляем запрос серверу тюряги, он дает нам ответ в виде исходного кода,
вот тут мы инициализируем ответ в наш label, указывая, что из всех этих каракуль нам
нужны только определенные строки, затем из этих строк вырезаем нужное значение, и окончательный результат инициализируется в label.

Ну, вот в принципе и все) Если есть какие-то ошибки в коде, не стесняемся, говорим.

Помог? = Ставь спасибку!
________________

Последний раз редактировалось zheka-zh; 31.12.2012 в 17:18.
  Ответить с цитированием
Пользователь сказал cпасибо:
крайслер (02.01.2013)
Старый 31.12.2012, 18:40   #2
 Старший сержант
Аватар для Sinyss
 
Sinyss троюродный дядя Чака НоррисаSinyss троюродный дядя Чака НоррисаSinyss троюродный дядя Чака НоррисаSinyss троюродный дядя Чака НоррисаSinyss троюродный дядя Чака НоррисаSinyss троюродный дядя Чака НоррисаSinyss троюродный дядя Чака НоррисаSinyss троюродный дядя Чака НоррисаSinyss троюродный дядя Чака НоррисаSinyss троюродный дядя Чака НоррисаSinyss троюродный дядя Чака Норриса
Регистрация: 29.07.2011
Сообщений: 197
Популярность: 8989
Сказал(а) спасибо: 45
Поблагодарили 175 раз(а) в 139 сообщениях
Отправить сообщение для Sinyss с помощью Skype™
 
По умолчанию Re: Parse, и с чем его едят

Уточни что имеется ввиду сбор текстовых данных, иначе это - граббер.
  Ответить с цитированием
Старый 31.12.2012, 21:10   #3
 Разведчик
Аватар для zheka-zh
 
zheka-zh никому не известный тип
Регистрация: 11.11.2011
Сообщений: 19
Популярность: 10
Сказал(а) спасибо: 0
Поблагодарили 8 раз(а) в 5 сообщениях
 
По умолчанию Re: Parse, и с чем его едят

Я просто привел пример его использования, определения брал с источника, чтобы не ошибиться =) Было бы больше времени уточнил бы по подробнее.
________________
  Ответить с цитированием
Старый 02.01.2013, 20:38   #4
 Разведчик
Аватар для Not_
 
Not_ никому не известный тип
Регистрация: 28.12.2012
Сообщений: 2
Популярность: 10
Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
 
По умолчанию Re: Parse, и с чем его едят

Статья не несет смысла,добавь комментарии к каждой строке - это будет полезно.
  Ответить с цитированием
Старый 02.01.2013, 21:21   #5
 Старший сержант
Аватар для Sinyss
 
Sinyss троюродный дядя Чака НоррисаSinyss троюродный дядя Чака НоррисаSinyss троюродный дядя Чака НоррисаSinyss троюродный дядя Чака НоррисаSinyss троюродный дядя Чака НоррисаSinyss троюродный дядя Чака НоррисаSinyss троюродный дядя Чака НоррисаSinyss троюродный дядя Чака НоррисаSinyss троюродный дядя Чака НоррисаSinyss троюродный дядя Чака НоррисаSinyss троюродный дядя Чака Норриса
Регистрация: 29.07.2011
Сообщений: 197
Популярность: 8989
Сказал(а) спасибо: 45
Поблагодарили 175 раз(а) в 139 сообщениях
Отправить сообщение для Sinyss с помощью Skype™
 
По умолчанию Re: Parse, и с чем его едят

Цитата:
Сообщение от zheka-zhПосмотреть сообщение
(Convert.ToChar(">")

Бессмысленно и беспощадно...
Цитата:
Сообщение от zheka-zhПосмотреть сообщение
execute = info[1].Replace(value2, "");

не совсем понял, зачем нам это, ведь строка то все равно сменится...
Цитата:
Сообщение от Not_Посмотреть сообщение
добавь комментарии к каждой строке - это будет полезно.

Людям которые вообще не понимают что происходит комментарии не помогут, а остальные и так поймут...
  Ответить с цитированием
Старый 04.01.2013, 18:41   #6
 Разведчик
Аватар для zheka-zh
 
zheka-zh никому не известный тип
Регистрация: 11.11.2011
Сообщений: 19
Популярность: 10
Сказал(а) спасибо: 0
Поблагодарили 8 раз(а) в 5 сообщениях
 
По умолчанию Re: Parse, и с чем его едят

Not_, ну как сказать, я рассчитывал что статью будут читать люди, хотя бы, имеющие малейшие знания c#,
к тому же в первой статье все объяснил = )
________________
  Ответить с цитированием
Ответ


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

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

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

Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
[nyan pArse] - Собиратель топ ников с ru5 сервера! object Общение и обсуждение 6 02.05.2012 19:45
[nyan pArse] - парсить ники теперь легко! object Dark Orbit 26 30.04.2012 21:08
[Обсуждение] "ФЛУДИЛКА" [nyan pArse] - Собиратель топ ников с ru5 сервера! ФилСерж Общение и обсуждение 0 04.02.2012 17:17
[Помогите!] Что это и с чем это едят ? zerstoren94 Общение и обсуждение, архив Point Blank 16 21.12.2011 20:30
Дюп и с чем его едят Netman Общение и обсуждение Aion 14 26.10.2011 20:29

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

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

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