Реклама | Adv
  • Rotator
  • Rotator
  • Rotator
  • Rotator
  • Rotator
  • Rotator
  • Rotator
  • Rotator
  • Rotator
  • Rotator
  • Rotator
  • Rotator
  • Rotator
  • Rotator
Сообщения форума
Реклама | Adv

Обсуждение практических вопросов использования Wargaming Public API

Дата: 08.03.2014 09:08:15
Просмотр сообщенияFirst_Helldar (08 Мар 2014 - 09:40) писал: В данном случае, я думаю, следует различать методы автоматизированного доступа. Для более полной информации приведу практический пример: Любой человек может перейти на официальный сайт http://worldoftanks.ru/ , как и любой может посмотреть его исходный код (например, в Google Chrome: view-source:http://worldoftanks.ru/) В этом коде с легкостью можно найти строку:   Так вот, парсер загружает в память только главную страницу данного сайта, не применяя никаких методов аутентификации ибо оные вообще не нужны. Далее, в тексте ищет нужную нам строку, обрезая все лишнее и, в итоге, значение переменной содержит лишь текст "8.11", что соответствует версии игры на момент загрузки страницы. Данный код не является скрытым, так как его может получить любой человек, которому он нужен.   Если нужен исходник парсера, то можете ознакомиться с ним здесь: using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;
using System.Net;
using System.IO;
using System.Diagnostics; namespace _Hell_World_of_Tanks_Monitor
{
    public partial class Form1 : Form
    {
        public Form1()
        {
            InitializeComponent();
        }         static string getResponse(string uri)
        {
            StringBuilder sb = new StringBuilder();
            byte[] buf = new byte[8192];
            HttpWebRequest request = (HttpWebRequest)WebRequest.Create(uri);
            HttpWebResponse response = (HttpWebResponse)request.GetResponse();
            Stream resStream = response.GetResponseStream();
            int count = 0;
            do
            {
                count = resStream.Read(buf, 0, buf.Length);
                if (count != 0)
                {
                    sb.Append(Encoding.Default.GetString(buf, 0, count));
                }
            }
            while (count > 0);
            return sb.ToString();
        }         private void button1_Click(object sender, EventArgs e)
        {
            try
            {
                string tanks = textBox1.Text;
                // получаем версию с сайта
                string s = getResponse("http://worldoftanks.ru");
                s = s.Remove(0, s.IndexOf("b-game-version") + 16);
                s = s.Remove(s.IndexOf(""));
                label1.Text = "Версия на сайте: " + s;                   // получаем версию файла
                FileVersionInfo myFileVersionInfo = FileVersionInfo.GetVersionInfo(tanks + "WorldOfTanks.exe");
                string st = myFileVersionInfo.ProductVersion.Replace(", ", ".");
                var a = st.Split(' ');
                label2.Text = "Версия файла: " + a[0];                   // получаем версию файла
                FileVersionInfo myFileVersionInfo1 = FileVersionInfo.GetVersionInfo(tanks + "WoTLauncher.exe");
                label3.Text = "Версия лаунчера: " + myFileVersionInfo1.FileVersion;
            }
            catch (Exception ex)
            {
                MessageBox.Show(ex.Message);
            }
        }
    }
}   А также, при желании, можно глянуть и сам парсер в действии. Исходный код всего проекта можно взять здесь: http://sourceforge.net/p/wot-monitor/code/ci/master/tree/ Написан на Visual Studio 2010 Язык разработки: c# Тип проекта: с открытым исходным кодом

MustBeDead:   А также, при желании, можно глянуть и сам парсер в действии. Исходный код всего проекта можно взять здесь: http://sourceforge.net/p/wot-monitor/code/ci/master/tree/ Написан на Visual Studio 2010 Язык разработки: c# Тип проекта: с открытым исходным кодом   Wargaming Developer Partner Program – специализированное под большие нагрузки средство, предназначенное для сторонних разработчиков. Регистрируя приложение, Вы принимаете во внимание и соглашаетесь с каждым пунктом Пользовательского соглашения.
Как уже сообщалось ранее, парсинг страниц портала не допускается. Используйте, пожалуйста, в работе приложения только методы Public API. Пожалуйста, изучите текст Пользовательского соглашения еще - так как пункт 4.4 не содержит в себе понятие "аутентификация".

Реклама | Adv