Вверх ↑
Этот топик читают: Гость
Ответов: 322
Рейтинг: 8
#1: 2022-05-30 09:05:48 ЛС | профиль | цитата
Всем привет!
Пытаюсь собрать програмку которая запрашивает данные со страницы сайта и формирует таблицу, для дальнейшего анализа данных.
Искал примеры по форуму (без результатов). Скиньте ссылку на форуме или личный пример.
Всем огромное спасибо.
карма: 0

0
Ответов: 793
Рейтинг: 168
#2: 2022-05-30 09:41:08 ЛС | профиль | цитата
Dad2016,
https://forum.hiasm.com/getfile/39424
https://forum.hiasm.com/getfile/39425

Редактировалось 1 раз(а), последний 2022-06-03 11:16:12
карма: 16

1
Голосовали:Dad2016
Ответов: 322
Рейтинг: 8
#3: 2022-05-30 13:28:20 ЛС | профиль | цитата
Огромное спасибо за примеры!
Стал колдовать с примерами, но на сайте немного по другому (там не "td", а "div").
Ссылка на сайт https://ru.wargaming.net/clans/wot/570514/players/#players&offset=0&limit=25&order=-battles_per_day&timeframe=all&battle_type=default
Хочу брать информацию по своим игрокам для анализа эффективности.
карма: 0

0
Ответов: 322
Рейтинг: 8
#4: 2022-05-30 14:57:36 ЛС | профиль | цитата
Нужно из этой таблицы взять данные
Tabl.jpg
Это игроки клана ( <div <p /p> /div> )
Tabl2.jpg
Это данные игроков ( <div <span /span> /div> )
Tabl1.jpg
В схеме выше я примерно понял принцип работы, но здесь не могу разобраться.
карма: 0

0
Ответов: 793
Рейтинг: 168
#5: 2022-05-30 17:47:41 ЛС | профиль | цитата
Dad2016, Достал таблицу, что с этими данными делать дальше, решай сам.
https://forum.hiasm.com/getfile/39487

Редактировалось 1 раз(а), последний 2022-05-30 17:48:15
карма: 16

1
файлы: 1wargaming- parsing.zip [964B] [311]
Голосовали:Dad2016
Ответов: 793
Рейтинг: 168
#6: 2022-05-30 20:12:46 ЛС | профиль | цитата
Dad2016, Также вытянул рейтинг. Меня кажется забанили на этом сайте .
https://forum.hiasm.com/getfile/39488
Схема будет работать если по умолчанию установлен Chrome(должна работать в браузерах на базе chromium)

Редактировалось 1 раз(а), последний 2022-05-30 20:13:21
карма: 16

1
файлы: 1wargaming- parsing-Рейтинг.zip [1.1KB] [297]
Голосовали:Dad2016
Ответов: 322
Рейтинг: 8
#7: 2022-05-31 08:15:34 ЛС | профиль | цитата
Gunta писал(а):
на базе chromium

Огромное спасибо за примеры.
Первый пример находит данные, но это информация про технику у игроков.
У меня установлен "Brave", он на базе chromium.
Второй пример не находит ничего (пустая таблица).
По факту мне нужно сформировать вот такую таблицу:
100.jpg
Данные брать вот здесь на сайте:
101.jpg
Очень плохо то, что я нифига не понимаю логики как ты вытаскиваешь данные.
Искал в коде страницы скобки, слова похожие при использовании тобой блоков - так и не разобрался где это.
Заранее огромное спасибо за твою помощь!!!
карма: 0

0
Ответов: 793
Рейтинг: 168
#8: 2022-05-31 08:41:16 ЛС | профиль | цитата
Dad2016 писал(а):
У меня установлен "Brave"

А какой браузер(ы) установлен ещё в твоей системе?

По рейтингу. Это нужно?
Рейтинг wargaming.PNG
карма: 16

0
Ответов: 322
Рейтинг: 8
#9: 2022-05-31 08:59:52 ЛС | профиль | цитата
Gunta писал(а):
А какой браузер

102.jpg
больше никаких нет.

--- Добавлено в 2022-05-31 09:06:50

Gunta писал(а):
По рейтингу. Это нужно?

Да, только ещё дату последнего входа. На картинке 101 (статистика боёв. последний бой игрока)

Редактировалось 1 раз(а), последний 2022-05-31 09:06:50
карма: 0

0
Ответов: 793
Рейтинг: 168
#10: 2022-05-31 09:19:23 ЛС | профиль | цитата
Dad2016 писал(а):
больше никаких нет.

Жаль, мне совсем не хочется устанавливать 4 браузер только для того чтобы попробовать.
Я у себя пробовал и с MSEdge и с Chrome, всё работает.
Запусти эту схему у себя. Что в Memo?

Add(MainForm,2953706,140,133)
{
link(onCreate,2470666:doRead,[])
}
Add(Memo,2586962,413,154)
{
Left=550
Top=160
Align=5
ScrollBars=3
}
Add(Registry,6800471,301,147)
{
link(onRead,9292668:doSplit,[])
}
Add(Registry,2470666,203,147)
{
HKey=1
Key="Software\Microsoft\Windows\Shell\Associations\UrlAssociations\http\UserChoice"
Value="ProgId"
link(onRead,5291657:doString,[])
}
Add(FormatStr,5291657,252,147)
{
DataCount=1
Mask="%1\shell\open\command"
link(onFString,6800471:doRead,[])
}
Add(StrPart,9292668,350,147)
{
Char="--"
DirectEvent=0
link(onPart,2586962:doAdd,[])
}

карма: 16

0
Ответов: 322
Рейтинг: 8
#11: 2022-05-31 09:58:05 ЛС | профиль | цитата
Gunta писал(а):
Что в Memo?

103.jpg

--- Добавлено в 2022-05-31 10:00:03

Gunta писал(а):
совсем не хочется устанавливать 4 браузер

не нужно, я попозже установлю как у тебя и всё.
и так много помог, только отвлекаю тебя.
Спасибо тебе огромное.

Редактировалось 1 раз(а), последний 2022-05-31 10:00:03
карма: 0

0
Ответов: 793
Рейтинг: 168
#12: 2022-05-31 10:14:35 ЛС | профиль | цитата
Dad2016 писал(а):
не нужн

Последний раз попробуй эту схему, только укажи полный путь до своего браузера (.exe)
https://disk.yandex.ru/d/8bvIIyinjwj_6g
(выкладываю на яндекс для того чтобы не засорять хранилище hiasm)
карма: 16

0
Ответов: 322
Рейтинг: 8
#13: 2022-05-31 13:54:50 ЛС | профиль | цитата
Заработала!!!
Но не все данные собирает
Всего 90 игроков (и 2 заместителя), по остальным игрокам тоже урезает.
104.jpg
Программа выдаёт 57 игроков (и 1 заместителя), по остальным тоже меньше:
105.jpg
Немного подредактировал программу:
Add(MainForm,5781242,161,203)
{
Width=1207
Height=741
link(onCreate,764017:doConsoleExec,[])
}
Add(WinExec,764017,224,203)
{
Param="--headless --disable-gpu --dump-dom https://ru.wargaming.net/clans/wot/570514/players/#players&offset=0&limit=25&order=-role&timeframe=all&battle_type=default&amp%3Boffset=0&amp%3Blimit=25&amp%3Border=-battles_per_day&amp"
Point(ProcessID)
Point(doConsoleExec)
Point(onConsoleResult)
Point(onConsoleError)
link(FileName,12516890:Text,[])
link(onConsoleResult,8991176:doWork2,[])
link(onConsoleError,8991176:doWork3,[(277,230)])
}
Add(HubEx,8991176,273,217)
{
link(onEvent,16262233:doCharset,[])
}
Add(Charset,16262233,301,217)
{
Type=7
link(onCharset,8626244:doSearch,[])
}
Add(BlockFind,8626244,357,217)
{
StartBlock="<div data-account_id="
EndBlock="spacer"></div></div>"
link(onSearch,2614655:doSearch,[])
}
Add(BlockFind,2614655,413,217)
{
Delete=0
ReplaceStr=";"
StartBlock="<"
EndBlock=">"
link(onEndSearch,16475729:doReplace,[])
}
Add(Replace,16475729,469,224)
{
SubStr=";;"
DestStr=";"
link(onReplace,11931154:doReplace,[])
}
Add(Trim,466241,574,224)
{
Char=";"
link(onTrim,15973639:doEvent1,[])
}
Add(StringTable,4134050,707,231)
{
Width=1191
Height=702
Align=5
Columns=#11:№ п/п=30==2|12:Игрок=250==0|13:Звание=250==0|6:3=0==0|6:4=0==0|6:5=0==0|6:6=0==0|6:7=0==0|6:8=0==0|6:9=0==0|7:10=0==0|7:11=0==0|7:12=0==0|7:13=0==0|7:14=0==0|7:15=0==0|7:16=0==0|7:17=0==0|7:18=0==0|7:19=0==0|7:20=0==0|7:21=0==0|7:22=0==0|7:23=0==0|8:PR=80==2|9:BTL=80==2|9:W/B=80==2|9:E/B=80==2|9:D/B=80==2|9:F/B=80==2|9:B/D=80==2|18:Дней в клане=80==2|7:32=0==0|7:33=0==0|0:|
}
Add(Replace,11931154,518,224)
{
SubStr=";;"
DestStr=";"
link(onReplace,466241:doTrim,[])
}
Add(VisualStrings,12516890,224,126)
{
@Hint=#48:Введи сюда полный путь до файла своего браузера.|
Lines=#66:C:\Program Files\BraveSoftware\Brave-Browser\Application\brave.exe|
Width=375
Height=32
AddHint(334,-59,194,26,@Hint)
}
Add(FormatStr,8373766,658,231)
{
Mask="%1;%2"
link(onFString,4134050:doAdd,[])
link(Str1,1038211:Count,[])
}
Add(CounterEx,1038211,658,189)
{
}
Add(Hub,15973639,623,224)
{
link(onEvent1,1038211:doNext,[(647,230)(647,195)])
link(onEvent2,8373766:doString,[])
}


--- Добавлено в 2022-05-31 14:41:25

Проба вытащить данные (дата последнего боя игрока)

Add(MainForm,5781242,161,203)
{
Width=1207
Height=741
link(onCreate,764017:doConsoleExec,[])
}
Add(WinExec,764017,224,203)
{
Param="--headless --disable-gpu --dump-dom https://ru.wargaming.net/clans/wot/570514/players/#players&offset=0&limit=25&order=-role&timeframe=all&battle_type=default&amp%3Boffset=0&amp%3Blimit=25&amp%3Border=-battles_per_day&amp"
Point(ProcessID)
Point(doConsoleExec)
Point(onConsoleResult)
Point(onConsoleError)
link(FileName,12516890:Text,[])
link(onConsoleResult,8991176:doWork2,[])
link(onConsoleError,8991176:doWork3,[(277,230)])
}
Add(HubEx,8991176,273,217)
{
link(onEvent,16262233:doCharset,[])
}
Add(Charset,16262233,301,217)
{
Type=7
link(onCharset,11226881:doSearch,[(345,223)(345,335)])
}
Add(BlockFind,8626244,364,217)
{
StartBlock="<div data-account_id="
EndBlock="spacer"></div></div>"
link(onSearch,2614655:doSearch,[])
}
Add(BlockFind,2614655,420,217)
{
Delete=0
ReplaceStr=";"
StartBlock="<"
EndBlock=">"
link(onEndSearch,16475729:doReplace,[])
}
Add(Replace,16475729,476,224)
{
SubStr=";;"
DestStr=";"
link(onReplace,11931154:doReplace,[])
}
Add(Trim,466241,581,224)
{
Char=";"
link(onTrim,15973639:doEvent1,[])
}
Add(StringTable,4134050,714,231)
{
Width=1191
Height=702
Align=5
Columns=#11:№ п/п=30==2|12:Игрок=250==0|13:Звание=250==0|6:3=0==0|6:4=0==0|6:5=0==0|6:6=0==0|6:7=0==0|6:8=0==0|6:9=0==0|7:10=0==0|7:11=0==0|7:12=0==0|7:13=0==0|7:14=0==0|7:15=0==0|7:16=0==0|7:17=0==0|7:18=0==0|7:19=0==0|7:20=0==0|7:21=0==0|7:22=0==0|7:23=0==0|8:PR=80==2|9:BTL=80==2|9:W/B=80==2|9:E/B=80==2|9:D/B=80==2|9:F/B=80==2|9:B/D=80==2|18:Дней в клане=80==2|7:32=0==0|7:33=0==0|0:|
}
Add(Replace,11931154,525,224)
{
SubStr=";;"
DestStr=";"
link(onReplace,466241:doTrim,[])
}
Add(VisualStrings,12516890,224,126)
{
@Hint=#48:Введи сюда полный путь до файла своего браузера.|
Lines=#66:C:\Program Files\BraveSoftware\Brave-Browser\Application\brave.exe|
Width=375
Height=32
AddHint(332,-90,194,26,@Hint)
}
Add(FormatStr,8373766,665,231)
{
Mask="%1;%2"
link(onFString,4134050:doAdd,[])
link(Str1,1038211:Count,[])
}
Add(CounterEx,1038211,665,189)
{
}
Add(Hub,15973639,630,224)
{
InCount=2
link(onEvent1,1038211:doNext,[(654,230)(654,195)])
link(onEvent2,8373766:doString,[])
}
Add(BlockFind,11226881,357,329)
{
StartBlock="<div class="
EndBlock="footer"></div></div></div></p>"
link(onSearch,4270297:doSearch,[])
}
Add(BlockFind,4270297,413,329)
{
Delete=0
ReplaceStr=";"
StartBlock="<"
EndBlock=">"
link(onEndSearch,13122004:doReplace,[])
}
Add(Replace,13122004,469,336)
{
SubStr=";;"
DestStr=";"
link(onReplace,5954834:doReplace,[])
}
Add(Trim,11382160,574,336)
{
Char=";"
link(onTrim,15973639:doEvent2,[(619,342)(619,237)])
}
Add(Replace,5954834,518,336)
{
SubStr=";;"
DestStr=";"
link(onReplace,11382160:doTrim,[])
}
Add(InfoTip,13069111,329,308)
{
Info=#48:Моя попытка вытащить дату последнего боя игрока |
Width=309
Height=74
}
Успехом не увенчалось.

Редактировалось 2 раз(а), последний 2022-05-31 14:41:25
карма: 0

0
Ответов: 793
Рейтинг: 168
#14: 2022-05-31 17:56:17 ЛС | профиль | цитата
Dad2016 писал(а):
Программа выдаёт 57 игроков (и 1 заместителя), по остальным тоже меньше

Исправил
https://disk.yandex.ru/d/U_78c4vwTaqJpQ
Dad2016 писал(а):
Проба вытащить данные (дата последнего боя игрока)

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

Редактировалось 1 раз(а), последний 2022-06-01 07:03:04
карма: 16

0
Ответов: 322
Рейтинг: 8
#15: 2022-06-01 16:40:23 ЛС | профиль | цитата
Gunta писал(а):
Если будет время

Привет.
Сейчас нормально работает, бывают глюки немного коверкает, обновляешь и всё проходит.
Единственное очень нехватает колонки "даты последнего боя".
А так уже начал оформлять, добавил базу SQLite_Ex для сохранения информации и дальнейшего анализа данных.
Спасибо огромное.
карма: 0

0
Сообщение
...
Прикрепленные файлы
(файлы не залиты)