1 / 1 / 0
Регистрация: 29.06.2015
Сообщений: 131
1

Надо спарсить Java код, полную статистику игры

09.01.2020, 23:50. Показов 889. Ответов 6

Author24 — интернет-сервис помощи студентам
Здравствуйте коллеги!

Есть статистика игры, предположим вот эта:
ссылка на статистику игры

Надо спарсить Java код, полную статистику игры


.. задача спарсить полностью всю статистику.
Однако получается спарсить только кусочек выделенный зелёным рямоугольником.
Кусок же выделенный красным прямоугольником спарсить неполучается никак (ни штатным WebBrowser1 ни Chromium-ом).
Как я не крутил и через DocumentComplete пробовал... всёравно неполучается.
-----------------------------
Вот пример того как я пытаюсь, но это уже мудрёно, я пробовал и простые варианты:
Delphi
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
unit Unit1;
 
interface
 
uses
  Winapi.Windows, Winapi.Messages, System.SysUtils, System.Variants,
  System.Classes, Vcl.Graphics, Vcl.Controls, Vcl.Forms, Vcl.Dialogs,
  Vcl.StdCtrls, MSHTML, Vcl.OleCtrls, SHDocVw, cefvcl;
 
type
  TForm1 = class(TForm)
    WebBrowser1: TWebBrowser;
    mmo1: TMemo;
    btn1: TButton;
    btn2: TButton;
    procedure WebBrowser1DocumentComplete(ASender: TObject; const pDisp: IDispatch; const URL: OleVariant);
    procedure btn1Click(Sender: TObject);
    procedure btn2Click(Sender: TObject);
  private
    { Private declarations }
  public
    { Public declarations }
  end;
 
var
  Form1: TForm1;
  WB_Doc: IHTMLDocument2;
  WB_HTMLWindow: IHTMLWindow2;
 
implementation
 
{$R *.dfm}
 
function GetHtml(doc: IHtmlDocument2): string;
var
  iDisp: IDispatch;
  iCollection: IHTMLElementCollection;
begin
  result := '';
  iCollection := doc.all.Tags('HTML') as IHTMLElementCollection;
  iDisp := iCollection.item(0, 0);
  result := (iDisp as IHTMLElement).outerHTML;
end;
 
procedure TForm1.btn1Click(Sender: TObject);
begin
  WebBrowser1.Navigate('https://www.scoreboard.com/ru/match/nP4hlZEh/#h2h;overall');
end;
 
procedure TForm1.btn2Click(Sender: TObject);
begin
  Mmo1.Lines.Add(GetHtml(WB_Doc));
end;
 
procedure TForm1.WebBrowser1DocumentComplete(ASender: TObject; const pDisp: IDispatch; const URL: OleVariant);
begin
  WebBrowser1.Document.QueryInterface(IHTMLDocument2, WB_Doc);
  WB_HTMLWindow := WB_Doc.parentWindow;
  if not Assigned(WB_HTMLWindow) then
    showmessage('авот фих тебе')
  else
    showmessage(' все OK');
end;
end.

Помогите пожалуйста. Спасибо.
0
09.01.2020, 23:50
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
09.01.2020, 23:50
Ответы с готовыми решениями:

Надо создать игры на java (ШАБЛОН) Жанр: фэнтези, например Эльфы, вампиры, тролли и т.д
ПОЖАЛУЙСТА ПОМОГИТЕЕЕЕ --- Надо создать игры на java (ШАБЛОН) Жанр:фэнтези, например Эльфы , вампиры , тролли и т.д

Создание логической игры Шахматы. Надо разделить код на классы
Надо отделить логику игры в отдельный класс. А так же что бы в текст бокс выводился сделанный ход, и доска была с обозначениями от 1 -8 и...

Как декомпилировать код java игры?
есть java игра можно ли де компилировать код и поменять некоторые веши и потом компилировать обратно и что бы она нормально...

6
 Аватар для GoodWeather
886 / 588 / 179
Регистрация: 28.02.2017
Сообщений: 2,359
Записей в блоге: 1
10.01.2020, 04:16 2
Цитата Сообщение от Ltybcrf Посмотреть сообщение
Надо спарсить Java код, полную статистику игры
эм... У вас HTML-страница. Возможно с JavaScript. Но в итоге всё равно вся информация в HTML DOM. А вот уж "Java-кода" там точно нету.
Цитата Сообщение от Ltybcrf Посмотреть сообщение
Есть статистика игры, предположим вот эта: ссылка на статистику игры
Не открывается. Вернее крутится "Loading..." и усё, больше ничего и никак.

Добавлено через 1 минуту
Цитата Сообщение от Ltybcrf Посмотреть сообщение
и через DocumentComplete пробовал...
Данное событие вроде как обозначает окончание загрузки. Только может всей страницы. А может фрейма (если есть). Каждого. Может ещё чего. А может и вообще не выстрелить...
Странное событие - вроде и им надо пользоваться, по логике-то, а оно вон оно как что...

Добавлено через 2 минуты
Помимо этого - подгружающиеся данные вполне могут начать подгружаться как раз тоже при этом же событии, то есть на момент события - ещё не быть подгруженными.
Тогда выходом может быть некоторое ожидание в секундах.

Добавлено через 58 секунд
о... А теперь ещё попробовал и загрузилось. И тоже ой не сразу. Вероятно вам нужен этот?:
HTML5
1
<div id="tab-h2h-overall" ... >
Добавлено через 2 минуты
Ну для начала давайте может типа такое опробуем:
Delphi
1
2
3
4
5
6
7
8
9
10
Procedure TForm1.Button1Click(Sender: TObject);
Var TimeOut: TDateTime;
Begin
WebBrowser1.Navigate('https://www.scoreboard.com/ru/match/nP4hlZEh/#h2h;overall');
TimeOut := IncSecond(Now(), 20);
While (Now() < TimeOut) Do
  Application.ProcessMessages();
Memo1.Lines.Add(WebBrowser1.OleObject.Document.documentElement.outerHTML);
Memo2.Lines.Add(WebBrowser1.OleObject.Document.getElementById('tab-h2h-overall').outerHTML);
End;
Добавлено через 1 минуту
Модуль DateUtils понадобится.
0
1 / 1 / 0
Регистрация: 29.06.2015
Сообщений: 131
10.01.2020, 19:10  [ТС] 3
За помощь спасибо большое, мне известна функция DOM.
Проблема похоже с нехватающим чемто ...

Надо спарсить Java код, полную статистику игры


И хромом и штатнім WebBrowser1 говорит что не поддерживает браузер нужные функции ...
Пытаемся "ехать дальше".

Как нам побороть эту проблему?
Помогите пожалуйста добить єтот вопрос!
0
1 / 1 / 0
Регистрация: 29.06.2015
Сообщений: 131
23.01.2020, 12:40  [ТС] 4
Ребята неужели у Вас парсится код фрейам статистики????
я и хромом пробую и обычным браузером
0
 Аватар для Мудрый Ижик
32 / 26 / 7
Регистрация: 18.10.2019
Сообщений: 187
23.01.2020, 15:19 5
Парсить какой-то сайт - довольно редкая задача, как правило если есть необходимость получать данные с какого-то веб-ресурса, то вебресурс дает api для этого. Если же такого нет, а очень хочется, то запускаем http-анализатор и через idHttp делаем что нам угодно, а WebBrowser для подобного подходит плохо.
0
1 / 1 / 0
Регистрация: 29.06.2015
Сообщений: 131
23.01.2020, 20:55  [ТС] 6
Цитата Сообщение от Мудрый Ижик Посмотреть сообщение
Парсить какой-то сайт - довольно редкая задача, как правило если есть необходимость получать данные с какого-то веб-ресурса, то вебресурс дает api для этого. Если же такого нет, а очень хочется, то запускаем http-анализатор и через idHttp делаем что нам угодно, а WebBrowser для подобного подходит плохо.
Подскажи каким именно анализатором?
И пошагово как это в делфи реализовать я не нуб .. но парсить учусь только
0
 Аватар для Пытливый
3762 / 2266 / 705
Регистрация: 29.05.2013
Сообщений: 9,616
23.01.2020, 21:17 7
Я пользовался раньше HTTP Analyzer Full Edition 7.6.4.508. Базовый функции простые, активировал его и в браузере идешь на сайт, делаешь там все что нужно, а HTTPAnalyzer все что делается в браузере в этот период записывает в виде http-команд. Изучаете запись после остановки HTTPAnalyzer и делаете то-же самое, но уже средствами Дельфи - вот и все.
0
23.01.2020, 21:17
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
23.01.2020, 21:17
Помогаю со студенческими работами здесь

Надо переписать готовый код JAVA на --> PHP язык (задачи)
1, Два бандита import java.util.*; import java.io.*; import java.math.BigInteger; public class Main{ public static void...

Расшифровать код который выдал лаунчер игры на Java
стало интересно расшифровать код который выдавал лаунчер игры на java, в криптографии вообще не шарю, только базовый школьный курс, поэтому...

Sniper Elite v.2 ( Удалить статистику игры )
Всем здравия и приятного времечка. Недавно прошел вышеупомянутую игру. Естественно целенаправленно я не собирал золотые слитки и не...

Как записать статистику игры (победы компьютера, игрока и ничью) в txt-файл?
#include &lt;iostream&gt; #include &lt;clocale&gt; #include &lt;windows.h&gt; #include &lt;time.h&gt; using namespace std; char field = {'-', '-',...

Как получить статистику выполнения SQL-запросов на Java?
Я запускаю запросы из IntelijIdea. Мне нужно знать, сколько времени прошло, чтобы выполнить запрос и размер набора результатов. Я знаю,...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
7
Ответ Создать тему

Редактор формул (кликните на картинку в правом углу, чтобы закрыть)
Опции темы

Новые блоги и статьи
Создаем SPA Router на чистом JavaScript
bytestream 17.02.2025
В современной веб-разработке одностраничные приложения (SPA) стали стандартом для создания динамичных и отзывчивых пользовательских интерфейсов. Ключевым компонентом любого SPA является роутер -. . .
Машинное обучение на TypeScript и TensorFlow
bytestream 17.02.2025
Машинное обучение становится все более востребованным направлением в современной разработке программного обеспечения. Интеграция искусственного интеллекта в веб-приложения открывает новые возможности. . .
Манипуляция данными EXIF и JPEG в JavaScript
bytestream 17.02.2025
В современном мире цифровой фотографии метаданные изображений играют важнейшую роль в организации и управлении медиаконтентом. Формат EXIF (Exchangeable Image File Format) - это стандарт,. . .
Как создать GUID/UUID в JavaScript
bytestream 17.02.2025
GUID (Globally Unique Identifier) и UUID (Universally Unique Identifier) - это специальные форматы 128-битных идентификаторов, которые практически гарантируют уникальность значения во времени и. . .
Что такое мышление в упрощенном смысле (моё субъективное видение, для создания модели).
Hrethgir 17.02.2025
Разумеется упрощать смысл есть. Дело в том, что я пришёл к тому выводу, что даже если я создам свой процессор (конвейер), то первое для чего смогу его использовать в качестве демонстративного. . .
Как Node.js устроен изнутри
Wired 17.02.2025
Node. js коренным образом изменил подход к веб-разработке, позволив использовать JavaScript не только в браузере, но и на стороне сервера. Созданный в 2009 году Райаном Далем, Node. js представляет. . .
Как обновить Node.js в Windows
Wired 17.02.2025
Думаю, многие разработчики сталкивались с ситуацией, когда устаревшая версия Node. js становилась источником проблем - от несовместимости с новыми пакетами до уязвимостей в безопасности. Особенно это. . .
Как обновить Node.js в MacOS
Wired 17.02.2025
В Node. js существует несколько подходов к обновлению, каждый из которых имеет свои преимущества и особенности применения. Выбор конкретного метода зависит от ваших потребностей - будь то. . .
Как обновить Node.js в Linux
Wired 17.02.2025
Обновление Node. js может показаться сложной задачей, особенно если у вас несколько проектов с разными зависимостями. Однако существует несколько надежных способов обновления, подходящих для разных. . .
[golang] 134. Gas Station
alhaos 17.02.2025
Тут нам даны два целочисленных слайса gas и cost, индексы массива представляют собой заправочные станции. а элементы gas это количество топлива на такой станции, cost это количество топлива. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2025, CyberForum.ru