Portál AbcLinuxu, 13. května 2025 23:47
----------------------------- ||Nick || Raiting || Pořadí|| ----------------------------- ||sOAZ || 2206 || 2 || ----------------------------- etc.Díky moc za nápady.
Řešení dotazu:
Třeba vůbec nechápu jak bych z bashe kontaktoval ten server. Přes telnet? A co dál?Co treba curl, nebo wget?
wget -q -O - http://eu.leagueoflegends.com/ladders/solo-5x5Tim ziskas stranku, a pak uz jen zpacovani:
wget -q -O - http://eu.leagueoflegends.com/ladders/solo-5x5 | grep XXXXX
Některé herní servry poskytnou jednou za den výpis dat (komprimovaný) a je možné si dělat vlastní statistiky. Zkus se s nimi domluvit. Pokud je cílem historie statistik mohlo by to být výhodné i pro ně.
Tady je ukázka jednoho servru, jak vypadá rozumný přístup příklad
Ta adresa v nápovědě není všem na očích, ale kdo hledá - najde.--limit-rate= --random-wait= --user-agent=Nasimuluj si tak treba Firefox a nahodne cekani mezi pozadavky => bude jim to min napadne.
nahodne cekani mezi pozadavkyTohle zvětší šanci na změnu dat - posun hráčů mezi stránkami => ve vlastní db budou chyby (nezachycený hráč a zdvojený hráč).
| 88488 | 88488 | kanaris | 2 | 2 | 1200 | | 88489 | 88489 | BEDbMAK007 | 2 | 2 | 1200 | | 88490 | 88490 | John Darck | 2 | 2 | 1200 | | 88491 | 88491 | 150 | 2 | 2 | 1200 | | 88492 | 88492 | Lemine | 2 | 2 | 1200 | | 88493 | 88493 | xFirefighterx | 2 | 2 | 1200 |Všecky záznamy se mi načetli maximálně korektně. První sloupek je ID co si vytváří DB a druhé číslo je přímo pořadové šíslo ze stránek. Pro všech 88493 záznamů je to 1:1. Přemejšlim jak by se to dalo načíst rychleji. Je to celkem 3650 stránek takže kdybych je načetl po po deseti tak mi na to stačí pouze 360 jobů/scriptů. Teď ještě vymyslet jaký způsobem to rozdělit. Pokud má někdo zkušenosti s masivním dotazování rád se poučím. Těch 360 jobů zabere 360*200kbit/s takže celkem(72Mbit/s) jsem zvědavej jestli si toho už někdo všimne. ((;
Před chvíli mi to doběhlo - trvalo to přesně 2 hodiny.Zkusil jsem příkaz
curl "http://eu.leagueoflegends.com/ladders/solo-5x5?page=[0-3684]"\ -o "solo#1.html"Stahovalo mi to rychlostí cca 1 stránku za sekundu. Tedy za hodinu by to
curl
měl zvládnout. S paralelizací možná i dříve. Celý výstup se dá snadno přesměrovat do dalšího procesu:
curl -s "http://eu.leagueoflegends.com/ladders/solo-5x5?page=[0-3684]" |\ zpracovani | ulozeni-do-databaze
Tiskni
Sdílej:
ISSN 1214-1267, (c) 1999-2007 Stickfish s.r.o.