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

как спарсить количество лог дисков Dark Orbit

-

Вопросы и ответы, обсуждения

- Ваши вопросы по Pascal/Delphi только в данном разделе

Ответ
 
Опции темы
Старый 03.09.2011, 23:16   #1
 Старший сержант
Аватар для OrBiT_DaRk
 
OrBiT_DaRk сломал счётчик популярности :(OrBiT_DaRk сломал счётчик популярности :(OrBiT_DaRk сломал счётчик популярности :(OrBiT_DaRk сломал счётчик популярности :(OrBiT_DaRk сломал счётчик популярности :(OrBiT_DaRk сломал счётчик популярности :(OrBiT_DaRk сломал счётчик популярности :(OrBiT_DaRk сломал счётчик популярности :(OrBiT_DaRk сломал счётчик популярности :(OrBiT_DaRk сломал счётчик популярности :(OrBiT_DaRk сломал счётчик популярности :(
Регистрация: 31.05.2011
Сообщений: 201
Популярность: 24012
Сказал(а) спасибо: 1,360
Поблагодарили 478 раз(а) в 251 сообщениях
Отправить сообщение для OrBiT_DaRk с помощью Skype™
 
По умолчанию как спарсить количество лог дисков Dark Orbit

Вот прошу помощи у специалистов, как спарсить кол. лог-дисков в игре ДО? (в простом исходном коде страницы данной инфы нет.)

Как это сделать? Делаю с исходника R-A-Z-O-Rа.


Код:
procedure TForm1.Button1Click(Sender: TObject);
var Reg: TRegExpr;
    Data: TStringList;
    S: string;
    HTTP: TIdHTTP;
begin
  // Проверям заполнены ли поля
  if (Edit1.Text = '')or(Edit2.Text = '')or(Edit3.Text = '') then
  begin
    ShowMessage('Заполните все поля!');
    Exit;
  end;
  // Создаем компоненты
  Reg := TRegExpr.Create; // Парсер
  Data := TStringList.Create; // Строки для посылки POST запроса
  HTTP := TIdHTTP.Create(nil); // HTTP
  HTTP.HandleRedirects := True; // Чтобы не выдавало ошибку 302, в Delphi 2010 не важно
  // Входим в игру
  Data.Clear; // Очистка не помешает ;)
  Data.Add('loginForm_default_username='+Edit1.Text);
  Data.Add('loginForm_default_password='+Edit2.Text);
  Data.Add('loginForm_default_login_submit=Вход');
  try
    S := HTTP.Post('http://darkorbit.bigpoint.com/?locale=ru&aid=0',Data);
  except
    ShowMessage('Ошибка при посылке данных!');
    Reg.Free;
    Data.Free;
    HTTP.Free;
    Exit;
  end;
  // Проверяем, правильны ли данные?
  if Pos('Выбор сервера',S) = 0 then
  begin
    ShowMessage('Неверные данные!');
    Reg.Free;
    Data.Free;
    HTTP.Free;
    Exit;
  end;
  // Выбираем сервер
  Reg.Expression := '"http://'+Edit3.Text+'\.darkorbit\.bigpoint\.com/GameAPI\.php\?req=(.*?)"';
  if Reg.Exec(S) then
  begin
    try
      S := HTTP.Get('http://'+Edit3.Text+'.darkorbit.bigpoint.com/GameAPI.php?req='+Reg.Match[1]);
      S := HTTP.Get('http://'+Edit3.Text+'.darkorbit.bigpoint.com/indexInternal.es?action=internalStart');
    except
      ShowMessage('Ошибка при запросе выбора сервера!');
      Reg.Free;
      Data.Free;
      HTTP.Free;
      Exit;
    end;
    // Сервер выбрали, проверяем данные
    if Pos('<title>www.DarkOrbit.com</title>',S) <> 0 then
    begin
      Reg.Expression := '<div class="userInfo_left fliess10px-white">Ник:</div><div class="userInfo_right">(.*?)</div>';
      if Reg.Exec(S) then ListBox1.Items.Add('Ник: '+Reg.Match[1]);
      Reg.Expression := '<div class="userInfo_left fliess10px-white">Сервер:</div><div class="userInfo_right">(.*?)</div>';
      if Reg.Exec(S) then ListBox1.Items.Add('Сервер: '+Reg.Match[1]);
      Reg.Expression := '<div class="userInfo_left fliess10px-white">Ранг:</div><div class="userInfo_right"><img src="(.*?)" style="vertical-align: baseline;"> (.*?)</div>';
      if Reg.Exec(S) then ListBox1.Items.Add('Ранг: '+Reg.Match[2]);
      Reg.Expression := '<div class="userInfo_left fliess10px-white">Премиум:</div><div class="userInfo_right">(.*?)</div>';
      if Reg.Exec(S) then ListBox1.Items.Add('Премиум: '+Reg.Match[1]);
      Reg.Expression := '<div class="userInfo_left fliess10px-white">Компания:</div><div class="userInfo_right">(.*?)</div>';
      if Reg.Exec(S) then ListBox1.Items.Add('Компания: '+Reg.Match[1]);
      // Достаточно, теперь вытащим другую инфу
      Reg.Expression := 'cred=(.*?)&amp;xcred=(.*?)&amp';
      if Reg.Exec(S) then ListBox1.Items.Add('Кредитов: '+Reg.Match[1]+' | Уридиума: '+Reg.Match[2]);
      ListBox1.items.Add('Информация загружена!');
    end else
    begin
      ShowMessage('Ошибка при входе на выбранный сервер!');
      Reg.Free;
      Data.Free;
      HTTP.Free;
      Exit;
    end;
  end else
  begin
    ShowMessage('Неудачный выбор сервера!');
    Reg.Free;
    Data.Free;
    HTTP.Free;
    Exit;
  end;
  // Уничтожаем компоненты
  Reg.Free;
  Data.Free;
  HTTP.Free;
end;
________________
  Ответить с цитированием
Старый 03.09.2011, 23:18   #2
 Разведчик
Аватар для =Kostanakis=
 
=Kostanakis= на правильном пути
Регистрация: 31.07.2011
Сообщений: 30
Популярность: 88
Сказал(а) спасибо: 14
Поблагодарили 7 раз(а) в 7 сообщениях
 
По умолчанию Re: как спарсить количество лог дисков Dark Orbit

У тебя входит через его исходник?
________________
Слыш, спасибка есть?
Учу Delphi,C++,PHP на [Ссылки могут видеть только зарегистрированные пользователи. ]
  Ответить с цитированием
Пользователь сказал cпасибо:
OrBiT_DaRk (03.09.2011)
Старый 03.09.2011, 23:24   #3
 Старший сержант
Аватар для OrBiT_DaRk
 
OrBiT_DaRk сломал счётчик популярности :(OrBiT_DaRk сломал счётчик популярности :(OrBiT_DaRk сломал счётчик популярности :(OrBiT_DaRk сломал счётчик популярности :(OrBiT_DaRk сломал счётчик популярности :(OrBiT_DaRk сломал счётчик популярности :(OrBiT_DaRk сломал счётчик популярности :(OrBiT_DaRk сломал счётчик популярности :(OrBiT_DaRk сломал счётчик популярности :(OrBiT_DaRk сломал счётчик популярности :(OrBiT_DaRk сломал счётчик популярности :(
Регистрация: 31.05.2011
Сообщений: 201
Популярность: 24012
Сказал(а) спасибо: 1,360
Поблагодарили 478 раз(а) в 251 сообщениях
Отправить сообщение для OrBiT_DaRk с помощью Skype™
 
По умолчанию Re: как спарсить количество лог дисков Dark Orbit

Да, все работает отлично. На делфи работаю первый день, пока доволен...
Только я код немного дописал для парсинга кред и ури.. Немного исходный код администраторы изменили..
________________
  Ответить с цитированием
Старый 03.09.2011, 23:27   #4
 Разведчик
Аватар для =Kostanakis=
 
=Kostanakis= на правильном пути
Регистрация: 31.07.2011
Сообщений: 30
Популярность: 88
Сказал(а) спасибо: 14
Поблагодарили 7 раз(а) в 7 сообщениях
 
По умолчанию Re: как спарсить количество лог дисков Dark Orbit

В коде страницы Древо умений нашел значение кол-ва дисков. Я правой кнопкой щелкнул по кол-ву лог-дисков/анализировать элемент, в Огнежуке открылся код с выделенными строчками элемента. Дерзай) Если что - мне самому интересно, как оттуда изъять
________________
Слыш, спасибка есть?
Учу Delphi,C++,PHP на [Ссылки могут видеть только зарегистрированные пользователи. ]
  Ответить с цитированием
Старый 03.09.2011, 23:31   #5
 Старший сержант
Аватар для OrBiT_DaRk
 
OrBiT_DaRk сломал счётчик популярности :(OrBiT_DaRk сломал счётчик популярности :(OrBiT_DaRk сломал счётчик популярности :(OrBiT_DaRk сломал счётчик популярности :(OrBiT_DaRk сломал счётчик популярности :(OrBiT_DaRk сломал счётчик популярности :(OrBiT_DaRk сломал счётчик популярности :(OrBiT_DaRk сломал счётчик популярности :(OrBiT_DaRk сломал счётчик популярности :(OrBiT_DaRk сломал счётчик популярности :(OrBiT_DaRk сломал счётчик популярности :(
Регистрация: 31.05.2011
Сообщений: 201
Популярность: 24012
Сказал(а) спасибо: 1,360
Поблагодарили 478 раз(а) в 251 сообщениях
Отправить сообщение для OrBiT_DaRk с помощью Skype™
 
По умолчанию Re: как спарсить количество лог дисков Dark Orbit

lolwut98, парсера не будет )) Мне же нужно хотя бы научится, сегодня только скачал делфи... А парсеров реально мало


Цитата:
Сообщение от =Kostanakis=Посмотреть сообщение
В коде страницы Древо умений нашел значение кол-ва дисков. Я правой кнопкой щелкнул по кол-ву лог-дисков/анализировать элемент, в Огнежуке открылся код с выделенными строчками элемента. Дерзай) Если что - мне самому интересно, как оттуда изъять

Да у меня в Гугл Хром тоже показывает, а в обычном Исходном коде нет такой информации, т.е. он не сможет спарсить по обычному
________________
  Ответить с цитированием
Старый 03.09.2011, 23:37   #6
 Разведчик
Аватар для =Kostanakis=
 
=Kostanakis= на правильном пути
Регистрация: 31.07.2011
Сообщений: 30
Популярность: 88
Сказал(а) спасибо: 14
Поблагодарили 7 раз(а) в 7 сообщениях
 
По умолчанию Re: как спарсить количество лог дисков Dark Orbit

Имхо,нужно DOM спарсить.Пошел курить мануалы просветленных)
________________
Слыш, спасибка есть?
Учу Delphi,C++,PHP на [Ссылки могут видеть только зарегистрированные пользователи. ]
  Ответить с цитированием
Старый 13.09.2011, 05:38   #7
 Разведчик
Аватар для R-A-Z-O-R
 
R-A-Z-O-R на правильном путиR-A-Z-O-R на правильном пути
Регистрация: 31.05.2011
Сообщений: 6
Популярность: 194
Сказал(а) спасибо: 9
Поблагодарили 25 раз(а) в 12 сообщениях
 
По умолчанию Re: как спарсить количество лог дисков Dark Orbit

А посмотри код элемента древо умений, и что происходит при нажатии на него
________________
Принимаю программы на заказ. Скайп: uran-1997
  Ответить с цитированием
Старый 14.09.2011, 05:11   #8
Заблокирован
 Старший сержант
Аватар для blad56
 
blad56 гордость нацииblad56 гордость нацииblad56 гордость нацииblad56 гордость нацииblad56 гордость нацииblad56 гордость нацииblad56 гордость нацииblad56 гордость нацииblad56 гордость нацииblad56 гордость нацииblad56 гордость нации
Регистрация: 03.02.2011
Сообщений: 178
Популярность: 2713
Сказал(а) спасибо: 128
Поблагодарили 230 раз(а) в 110 сообщениях
Отправить сообщение для blad56 с помощью Skype™
 
По умолчанию Re: как спарсить количество лог дисков Dark Orbit

Цитата:
Сообщение от OrBiT_DaRkПосмотреть сообщение
Reg.Expression := '"http://'+Edit3.Text+'\.darkorbit\.bigpoint\.com/GameAPI\.php\?req=(.*?)"';

ты не там парсишь. там ооочень длинная строка, в которую нужно вставлять сид
  Ответить с цитированием
Старый 14.09.2011, 16:35   #9
Заблокирован
 Пехотинец
Аватар для lolwut98
 
lolwut98 блестящий пример для подражанияlolwut98 блестящий пример для подражанияlolwut98 блестящий пример для подражанияlolwut98 блестящий пример для подражанияlolwut98 блестящий пример для подражанияlolwut98 блестящий пример для подражанияlolwut98 блестящий пример для подражанияlolwut98 блестящий пример для подражанияlolwut98 блестящий пример для подражанияlolwut98 блестящий пример для подражанияlolwut98 блестящий пример для подражания
Регистрация: 16.07.2011
Сообщений: 97
Популярность: 2528
Сказал(а) спасибо: 61
Поблагодарили 336 раз(а) в 61 сообщениях
Отправить сообщение для lolwut98 с помощью ICQ Отправить сообщение для lolwut98 с помощью Skype™
 
По умолчанию Re: как спарсить количество лог дисков Dark Orbit

Цитата:
Сообщение от blad56Посмотреть сообщение
в которую нужно вставлять сид

orly? а я как-то без этого обходился
  Ответить с цитированием
Ответ


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

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

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

Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
[Помогите!] Дайте ссылку с ценами и количеством лог дисков для каждого очка прогресса Boris01 Общение и обсуждение 4 25.06.2011 10:55
Количество персов? chudik_off Вопросы и ответы, обсуждения 3 18.05.2011 22:12
Количество персов chudik_off Общение и обсуждение Perfect World 1 15.05.2011 23:26
[Руководство] количество опыта metalin Общение и обсуждение CrossFire 6 04.03.2011 21:45
VRU hack dark orbit - uridum gratis dark orbit 2011 Saha364 Общение и обсуждение 13 04.01.2011 12:54

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

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

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