Вверх ↑
Этот топик читают: Гость
Ответов: 698
Рейтинг: 143
#16: 2022-06-01 18:51:43 ЛС | профиль | цитата
Dad2016 писал(а):
бывают глюки немного коверкает

В последнем архиве 2 схемы. Переделай схему "wargaming- parsing-Рейтинг 2.sha" под свой браузер.
Она не должна глючить.

Редактировалось 1 раз(а), последний 2022-06-01 18:52:10
карма: 15

0
Ответов: 322
Рейтинг: 8
#17: 2022-06-02 08:35:58 ЛС | профиль | цитата
Gunta писал(а):
Она не должна глючить

Да она работает стабильно.
Попробывал открыть дату последнего боя через WinExec выдаёт ошибку 267
запросы формируются из таблицы (32 столбец), если просто вставить ссылку в браузер страница открывается там где нужно.

Add(MainForm,5781242,28,49)
{
Left=100
Top=100
Width=1312
Height=799
link(onCreate,2470666:doRead,[])
}
Add(Registry,6800471,154,63)
{
link(onRead,13533382:doSplit,[])
}
Add(Registry,2470666,70,63)
{
HKey=1
Key="Software\Microsoft\Windows\Shell\Associations\UrlAssociations\http\UserChoice"
Value="ProgId"
link(onRead,5291657:doString,[])
}
Add(FormatStr,5291657,112,63)
{
DataCount=1
Mask="%1\shell\open\command"
link(onFString,6800471:doRead,[])
}
Add(VisualStrings,11141527,1015,140)
{
Lines=#227: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%3Btimeframe=all&amp%3Bbattle_type=default|
Width=368
Height=39
}
Add(Charset,16262233,364,112)
{
Type=7
link(onCharset,8257054:doAdd,[])
}
Add(BlockFind,2614655,623,224)
{
Delete=0
ReplaceStr=";"
StartBlock="<"
EndBlock=">"
link(onEndSearch,16475729:doReplace,[])
}
Add(Replace,16475729,679,231)
{
SubStr=";;"
DestStr=";"
link(onReplace,11931154:doReplace,[])
}
Add(Trim,466241,784,231)
{
Char=";"
link(onTrim,7348555:doEvent1,[])
}
Add(Replace,11931154,728,231)
{
SubStr=";;"
DestStr=";"
link(onReplace,466241:doTrim,[])
}
Add(StringTable,15093999,931,238)
{
Width=1296
Height=760
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|21:Последний бой=1500==0|7:33=0==0|0:|
Point(EndIdx)
Point(Matrix)
}
Add(FormatStr,8373766,875,238)
{
DataCount=3
Mask="%1;%2;%3"
link(onFString,15093999:doAdd,[])
link(Str1,1038211:Count,[])
link(Str3,762839:Value,[(895,229)(923,229)])
}
Add(CounterEx,1038211,875,182)
{
}
Add(Hub,7348555,833,231)
{
link(onEvent1,1038211:doNext,[(858,237)(858,188)])
link(onEvent2,8373766:doString,[])
}
Add(StrList,8257054,420,112)
{
FileName="test.txt"
Point(doSave)
}
Add(BlockFind,2294278,420,168)
{
StartBlock="<div class="tbl-rating_body js-items-list">"
EndBlock="</div></div></div></div></div></div></div>"
link(onSearch,7288610:doReplace,[])
link(Text,8257054:Text,[])
}
Add(Replace,7288610,469,168)
{
SubStr="\r\n"
link(onReplace,1060543:doSearch,[])
}
Add(BlockFind,1060543,518,168)
{
StartBlock="<div data-account_id="
EndBlock="spacer"></div></div>"
link(onSearch,13548467:doEvent1,[])
link(onEndSearch,12604664:doFor,[(564,181)(564,314)])
}
Add(Hub,13548467,574,168)
{
link(onEvent1,5233330:doSearch,[])
link(onEvent2,2614655:doSearch,[(613,181)(613,230)])
}
Add(FormatStr,7908552,1015,308)
{
Mask="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%3Btimeframe=all&amp%3Bbattle_type=default&expanded_player=%2"
Point(FString)
link(onFString,6775329:doWrite,[(1063,314)(1063,353)(940,353)(940,321)])
link(Str1,11141527:Text,[])
}
Add(Memory,762839,917,168)
{
}
Add(MatrixRW,6775329,952,308)
{
X=32
link(onRead,7908552:doString,[])
link(Matrix,6156203:Var2,[])
link(Y,12604664:Position,[(979,299)(937,299)(937,348)(874,348)])
}
Add(For,12604664,868,308)
{
link(onEvent,6775329:doRead,[])
link(onStop,13195406:doFor,[(912,321)(912,405)(793,405)(793,489)])
link(End,12250432:Var2,[])
}
Add(Message,556176,994,630)
{
}
Add(WinExec,5971269,308,98)
{
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"
Point(ProcessID)
Point(doConsoleExec)
Point(onConsoleResult)
Point(onConsoleError)
Point(onConsoleTerminate)
link(onConsoleResult,16262233:doCharset,[])
link(onConsoleTerminate,2294278:doSearch,[(354,132)(354,174)])
}
Add(MultiStrPart,13533382,196,63)
{
Char="--"
link(onSplit,11358759:doString,[(238,69)(238,104)(184,104)(184,118)])
}
Add(FormatStr,11358759,196,112)
{
Mask="%1-%2"
link(onFString,11981099:doValue,[])
link(Str1,13533382:Part1,[])
link(Str2,13533382:Part2,[])
}
Add(BlockFind,5233330,623,168)
{
IncludeBlock=1
StartBlock="<div data-account_id=""
EndBlock="" class="
link(onSearch,762839:doValue,[])
}
Add(WinExec,4786046,924,574)
{
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%3Btimeframe=all&amp%3Bbattle_type=default&expanded_player=93688142"
Point(ProcessID)
Point(doConsoleExec)
Point(onConsoleResult)
Point(onConsoleError)
Point(onConsoleTerminate)
Point(onErrorExec)
link(FileName,556475:Var,[])
link(Params,14109702:FString,[])
link(onErrorExec,556176:doMessage,[(975,615)(975,636)])
}
Add(FormatStr,14109702,931,483)
{
DataCount=1
Mask="--headless --disable-gpu --dump-dom %1"
Point(FString)
link(onFString,4786046:doConsoleExec,[(973,489)(973,528)(912,528)(912,594)])
}
Add(For,13195406,805,483)
{
link(onEvent,7661631:doRead,[])
link(End,12250432:Var1,[(818,278)])
}
Add(Charset,8925384,994,588)
{
Type=7
link(onCharset,9984622:doSearch,[])
}
Add(BlockFind,9984622,1050,588)
{
StartBlock="<span class="js-format-last_battle js-format-last_battle-date">"
EndBlock="</span>"
}
Add(GetDataEx,12250432,875,273)
{
Angle=1
link(Data,15093999:EndIdx,[(951,278)])
}
Add(MatrixRW,7661631,882,483)
{
X=32
link(onRead,14109702:doString,[])
link(Matrix,6156203:Var1,[(888,285)])
link(Y,13195406:Position,[(909,471)(860,471)(860,527)(811,527)])
}
Add(GetDataEx,6156203,952,280)
{
link(Data,15093999:Matrix,[])
}
Add(Memory,11981099,252,112)
{
link(onData,5971269:doConsoleExec,[])
}
Add(LineBreak,5585017,252,161)
{
Type=1
link(Data,11981099:Value,[])
Primary=[556475,672,385]
}

--- Добавлено в 2022-06-02 08:38:04

В начале при формировании пути к браузеру в твоём варианте убирается лишний минус и поэтому ссылка становится не правильной, поэтому сделал так.

Редактировалось 1 раз(а), последний 2022-06-02 08:38:04
карма: 0

0
Ответов: 698
Рейтинг: 143
#18: 2022-06-02 17:59:41 ЛС | профиль | цитата
Dad2016, Победил я твой "последний бой" . Но наберись терпением.
Скачивание каждой страницы игрока и вытаскивание даты – 10-15 секунд
Количество игроков около – 90
15 Х 90 = 1350 сек = 20 мин(приблизительно)

Ссылка на схему - https://forum.hiasm.com/getfile/39490
Переделай под свой браузер.
карма: 15

1
файлы: 1wargaming- parsing-Рейтинг 3.zip [2KB] [250]
Голосовали:Dad2016
Ответов: 322
Рейтинг: 8
#19: 2022-06-03 07:27:33 ЛС | профиль | цитата
Gunta писал(а):
10-15 секунд

Спасибо огромное!
Я сделал по твоим наброскам, у меня на каждого по 4-5 секунды уходит.
Всего 92 игрока = 92х5=460 сек = 7 с мелочью минут.

Add(MainForm,5781242,28,49)
{
Left=100
Top=100
Width=1426
Height=799
link(onCreate,2470666:doRead,[])
}
Add(Registry,6800471,154,63)
{
link(onRead,13533382:doSplit,[])
}
Add(Registry,2470666,70,63)
{
HKey=1
Key="Software\Microsoft\Windows\Shell\Associations\UrlAssociations\http\UserChoice"
Value="ProgId"
link(onRead,5291657:doString,[])
}
Add(FormatStr,5291657,112,63)
{
DataCount=1
Mask="%1\shell\open\command"
link(onFString,6800471:doRead,[])
}
Add(VisualStrings,11141527,966,140)
{
Lines=#227: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%3Btimeframe=all&amp%3Bbattle_type=default|
Width=368
Height=39
}
Add(Charset,16262233,308,112)
{
Type=7
link(onCharset,8257054:doAdd,[])
}
Add(BlockFind,2614655,581,224)
{
Delete=0
ReplaceStr=";"
StartBlock="<"
EndBlock=">"
link(onEndSearch,16475729:doReplace,[])
}
Add(Replace,16475729,637,231)
{
SubStr=";;"
DestStr=";"
link(onReplace,11931154:doReplace,[])
}
Add(Trim,466241,742,231)
{
Char=";"
link(onTrim,7348555:doEvent1,[])
}
Add(Replace,11931154,686,231)
{
SubStr=";;"
DestStr=";"
link(onReplace,466241:doTrim,[])
}
Add(StringTable,15093999,889,238)
{
Width=1410
Height=760
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|20:Последний бой=100==0|9:33=100==0|0:|
Point(EndIdx)
Point(Matrix)
}
Add(FormatStr,8373766,833,238)
{
DataCount=3
Mask="%1;%2;%3"
link(onFString,15093999:doAdd,[])
link(Str1,1038211:Count,[])
link(Str3,762839:Value,[(853,229)(881,229)])
}
Add(CounterEx,1038211,833,182)
{
}
Add(Hub,7348555,791,231)
{
link(onEvent1,1038211:doNext,[(816,237)(816,188)])
link(onEvent2,8373766:doString,[])
}
Add(StrList,8257054,364,112)
{
FileName="test.txt"
Point(doSave)
}
Add(BlockFind,2294278,364,168)
{
StartBlock="<div class="tbl-rating_body js-items-list">"
EndBlock="</div></div></div></div></div></div></div>"
link(onSearch,7288610:doReplace,[])
link(Text,8257054:Text,[])
}
Add(Replace,7288610,413,168)
{
SubStr="\r\n"
link(onReplace,1060543:doSearch,[])
}
Add(BlockFind,1060543,469,168)
{
StartBlock="<div data-account_id="
EndBlock="spacer"></div></div>"
link(onSearch,13548467:doEvent1,[(520,174)(520,153)])
link(onEndSearch,12604664:doFor,[(695,181)(695,314)])
}
Add(Hub,13548467,539,147)
{
link(onEvent1,5233330:doSearch,[(567,153)(567,174)])
link(onEvent2,2614655:doSearch,[(563,160)(563,230)])
}
Add(FormatStr,7908552,966,308)
{
Mask="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%3Btimeframe=all&amp%3Bbattle_type=default&expanded_player=%2"
Point(FString)
link(onFString,6775329:doWrite,[(1020,314)(1020,351)(898,351)(898,321)])
link(Str1,11141527:Text,[])
}
Add(Memory,762839,875,168)
{
}
Add(MatrixRW,6775329,910,308)
{
X=32
link(onRead,7908552:doString,[])
link(Matrix,15039671:Var2,[])
link(Y,12604664:Position,[(937,296)(899,296)(899,356)(860,356)])
}
Add(For,12604664,854,308)
{
link(onEvent,6775329:doRead,[])
link(onStop,14978949:doClear,[(894,321)(894,368)(870,368)(870,398)])
link(End,5231358:Var2,[(867,289)(909,289)])
}
Add(WinExec,5971269,259,98)
{
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"
Point(ProcessID)
Point(doConsoleExec)
Point(onConsoleResult)
Point(onConsoleError)
Point(onConsoleTerminate)
link(onConsoleResult,16262233:doCharset,[])
link(onConsoleTerminate,2294278:doSearch,[(298,132)(298,174)])
}
Add(MultiStrPart,13533382,196,63)
{
Char="--"
link(onSplit,11358759:doString,[(238,69)(238,104)(184,104)(184,118)])
}
Add(FormatStr,11358759,196,112)
{
Mask="%1-%2"
Point(FString)
link(onFString,5971269:doConsoleExec,[])
link(Str1,13533382:Part1,[])
link(Str2,13533382:Part2,[])
}
Add(BlockFind,5233330,581,168)
{
IncludeBlock=1
StartBlock="<div data-account_id=""
EndBlock="" class="
link(onSearch,762839:doValue,[])
}
Add(FormatStr,14109702,1057,434)
{
DataCount=1
Mask="--headless --disable-gpu --dump-dom %1"
Point(FString)
link(onFString,7715532:doData,[])
}
Add(MatrixRW,7661631,1008,434)
{
X=32
link(onRead,14109702:doString,[])
link(Matrix,311148:Var2,[])
link(Y,8430486:Var3,[(1035,422)(939,422)(939,474)])
}
Add(WinExec,3759681,1092,511)
{
Point(ProcessID)
Point(doConsoleExec)
Point(onConsoleResult)
Point(onConsoleError)
Point(onConsoleTerminate)
Point(onErrorExec)
Point(doConsoleDetach)
link(FileName,4361325:Var,[])
link(Params,14109702:FString,[(1105,492)(1063,492)])
link(onConsoleResult,12353916:doWork1,[])
}
Add(LineBreak,3733304,196,161)
{
Type=1
link(Data,11358759:FString,[])
Primary=[4361325,896,245]
}
Add(CounterEx,1887305,889,427)
{
Min=-1
link(onNext,14155487:doWork2,[])
}
Add(DoData,7715532,1106,434)
{
link(onEventData,3759681:doConsoleExec,[(1150,440)(1150,489)(1080,489)(1080,531)])
}
Add(GetDataEx,15039671,910,280)
{
link(Data,15093999:Matrix,[])
}
Add(Hub,15657711,1211,532)
{
OutCount=3
link(onEvent1,15980594:doWrite,[(1234,538)(1234,506)(982,506)(982,524)])
link(onEvent2,3759681:doConsoleDetach,[(1239,545)(1239,500)(1061,500)(1061,538)])
link(onEvent3,1887305:doNext,[(1237,552)(1237,574)(864,574)(864,433)])
}
Add(MatrixRW,15980594,994,511)
{
X=33
link(Matrix,311148:Var1,[(1000,376)])
link(Y,8430486:Var2,[(1021,497)(923,497)])
}
Add(GetDataEx,8430486,917,469)
{
Angle=3
link(Data,1887305:Count,[(895,474)])
}
Add(GetDataEx,311148,1008,371)
{
link(Data,15039671:Var3,[(1014,285)])
}
Add(MultiElement,12353916,1141,525)
{
link(onEvent1,7661631:doWrite,[(1188,531)(1188,479)(996,479)(996,447)])
link(onEvent2,15657711:doEvent1,[])
}
BEGIN_SDK
Add(EditMulti,9144590,21,21)
{
EventCount=2
WorkCount=1
link(doWork1,14652660:doCharset,[(31,27)(31,41)])
}
Add(Charset,14652660,42,35)
{
Type=7
link(onCharset,10839283:doSearch,[])
}
Add(BlockFind,10839283,91,35)
{
StartBlock="<span class="js-format-last_battle js-format-last_battle-date">"
EndBlock="</span>"
link(onSearch,2043424:doSplit,[])
}
Add(StrPart,2043424,140,35)
{
Char=">"
link(onSplit,11438599:doSplit,[])
}
Add(StrPart,11438599,189,35)
{
Char="<"
link(onPart,5632498:doEvent1,[])
}
Add(DateConvertor,4033438,266,42)
{
Mode=8
Format="dd.MM.yyyy"
Point(Data)
link(onResult,9144590:onEvent1,[(310,48)(310,27)])
}
Add(Hub,5632498,238,42)
{
link(onEvent1,4033438:doConvert,[])
link(onEvent2,9144590:onEvent2,[(286,55)(286,34)])
}
END_SDK
Add(If_else,13252433,952,427)
{
Type=2
link(onFalse,7661631:doRead,[])
link(Op2,5231358:Var3,[(965,278)])
}
Add(GetDataEx,5231358,903,273)
{
link(Data,15093999:EndIdx,[])
}
Add(Memory,14978949,889,385)
{
Default=Integer(0)
link(onData,14155487:doWork1,[(935,391)])
}
Add(HubEx,14155487,931,427)
{
link(onEvent,13252433:doCompare,[])
}
карма: 0

0
Ответов: 322
Рейтинг: 8
#20: 2022-06-03 11:27:42 ЛС | профиль | цитата
Есть глюк, после 39 игрока, программа тупо больше не выдаёт данные о последнем бое. Такое ощущение она останавливается, потому что нет ошибок. Подключал Message к onErrorExec - нет сообщений об ошибке. Но именно на этом элементе останавливается. До него данные доходят, дальше стоп.
карма: 0

0
Ответов: 698
Рейтинг: 143
#21: 2022-06-03 11:36:12 ЛС | профиль | цитата
Dad2016 писал(а):
Есть глюк, после 39 игрока, программа тупо больше не выдаёт данные о последнем бое. Такое ощущение она останавливается, потому что нет ошибок

У меня тоже самое. Всегда разное количество игроков выдает. Только один раз выдало всех.
Но замечал, если много раз запрашивать сайт вообще не грузится.

--- Добавлено в 2022-06-03 11:54:21

Только что запустил программу. Получил все даты последнего боя.Пропустил только одного игрока - 78.
Рейтинг.PNG

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

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