» Poradna » Web a internet

Dolování dat z cizí webové aplikace (prolomení API)

 |   |  Microsoft Windows 10 Chrome 116.0.0.0

Zdravím, jdu s trochu netradičním dotazem. Byl by nějaký šikovný programátor ochotný pomoct, jak z webové aplikace stis.cz (výsledkový portál soutěží stolního tenisu) získat požadovaná data (tabulky, úspěšnost)...?Historicky jsem data získával pomocí php funkce file_get_contents();Letos však změnili web a jsem v koncích.Na internetu jsem našel návod, jak přes nástroje Chromu najít spouštěč API.Pro příklad (namátkově vybraná soutěž) https://stis.ping-pong.cz/tabulka/svaz-420601/rocni... Jsem vyhledal v sekci Fetch/XHR adresu:https://stis.ping-pong.cz/api/ která dle Fetch/XHR vypadá, že obsahuje požadovaná data, nicméně když ji dám přímo do odkazu, vypíše "no action". Předpokládám, že tam je vyžadován ještě nějaký krok. Poradil by prosím někdo? PS: Pro rejpaly - Zkoušel jsem je oslovit oficiální cestou - e-mailem i FB na několik kontaktů i přímo správce webu pro získání oficiálního přístupu k API, ale nikdy jsem ani neobdržel žádnou reakci.

Mohlo by vás také zajímat

Odpovědi na otázku

 | Android AppleMAC-Safari 5.0

To že jsi neobdržel žádnou odpověď neodůvodňuje, abys jim kradl data bez povolení. Oni nejsou povinni ti to umožnit a dokonce ani nejsou povinni ti odpovídat. A v těchto případech opravdu mlčení neznamená souhlas.

Souhlasím  |  Nesouhlasím  |  Odpovědět
 |   |  Microsoft Windows 10 Chrome 116.0.0.0

Jojo, papežtější než papež... Jasně, to všechno vím. Nicméně přímo na webu mají možnost tisku/exportu do XLS, takže data jako taková jsou dostupná pro použití. Chci jen získat pár tabulek pro překopírování na naše oddílové stránky tak, abych to nemusel každý týden ručně exportovat atd.

Souhlasím  |  Nesouhlasím  |  Odpovědět
 | Android AppleMAC-Safari 5.0

Ok, to má sice logiku, ale pokud by chtěli aby jim to někdo tahal přímo, tak tam udělají API. Z toho XLS to vytahovat nejde?

Souhlasím  |  Nesouhlasím  |  Odpovědět
 |   |  Microsoft Windows 10 Chrome 116.0.0.0

Z XLS by to šlo, ale nevytáhnu to nějak automatizovaně přímo přes svůj web. Takto jsem dvakrát za týden měl nastavený cron, který mi stáhl zhruba 8 tabulek, data "vyčistil" od nepotřebného a uložil do mé DB. Vím, že to je neetické, ale nepotřebuju dolovat celou databázi každou hodinu. Ale čas je drahocenný

Souhlasím  |  Nesouhlasím  |  Odpovědět
 | Microsoft Windows 10 Chrome 116.0.0.0

Používáš správnou metodu (GET/POST)? Posíláš správné hlavičky? Zejména cookies by mohly být potřeba.Co všechno tam musíš nutně nastavit, se bez znalosti daného serveru dá zjistit jenom experimentálně.

Souhlasím  |  Nesouhlasím  |  Odpovědět
 |   |  Microsoft Windows 10 Firefox 116.0

No, byly (a ještě jsou) prázdniny. Zkus kontaktovat webmastera příští týden.

Souhlasím  |  Nesouhlasím  |  Odpovědět
 |   |  Microsoft Windows 10 Chrome 116.0.0.0

otevři si příkazový řádek a spusť:cd \nejaky_tvuj_adresarcurl -X POST "https://stis.ping-pong.cz/api/" --data "action=tabulka&soutez=5212" -o output.jsonsnad se to tu moc nerozházívýsledek bude v souboru output.json

Souhlasím  |  Nesouhlasím  |  Odpovědět
 |   |  Microsoft Windows 10 Chrome 116.0.0.0

v těch prvních uvozovkách je ten tvůj druhý link co končí na format.json

Souhlasím  |  Nesouhlasím  |  Odpovědět
 |   |  Microsoft Windows 10 Chrome 116.0.0.0

Parádní, děkuji, s tím už si následně poradím.

Souhlasím  |  Nesouhlasím  |  Odpovědět
 |   |  Microsoft Windows 10 Firefox 116.0

Potrebujes dodat POST parametry:https://imgur.com/a/QNzFhUyPriklad v pythonu:from requests import postSVAZID = 420601ROCNIK = 2023SOUTEZ = 5211base_url = "https://stis.ping-pong.cz/api/"def get_data(svazid, rocnik, soutez): url = f'{base_url}svaz-{svazid}/rocnik{rocnik}/soutez-{soutez}//format.json' param = {"action" : "load", "soutez" : soutez, "key" : "schedule", "pageby" : "count", "finish" : 1, "showfrom" : "fist", "hide" : 1} data = post(url, param) print(data.text)get_data(SVAZID,ROCNIK,SOUTEZ)

Souhlasím  |  Nesouhlasím  |  Odpovědět
 |   |  Microsoft Windows 10 Chrome 116.0.0.0

Děkuji i tady. Přesně nějaké takové "nakopnutí" jsem potřeboval. Když už vím postup, upravit si to podle sebe zvládnu

Souhlasím  |  Nesouhlasím  |  Odpovědět
 |   |  Microsoft Windows 10 Chrome 121.0.0.0

Ahoj, povedlo se ti vytvorit dotaz do API? Nebo je jina cesta? Resim ten samy problem. Automaticke stahovani nabizeneho exportu/tisku je pro me strasne neprakticky.

Souhlasím  |  Nesouhlasím  |  Odpovědět
 |   |  Microsoft Windows 10 Chrome 121.0.0.0

Tedy myslel jsem Manualni stahovani...

Souhlasím  |  Nesouhlasím  |  Odpovědět
 |   |  Microsoft Windows 10 Chrome 115.0.0.0

pokud mají nakonfigurované CORS tak si "načerno" neškrtneš

Souhlasím  |  Nesouhlasím  |  Odpovědět
 |   |  Microsoft Windows 10 Firefox 116.0

Napsat autorovi webu, je asi nad síly autora tohoto dotazu, že?Ono je totiž o mnoho jednodušší, parazitovat na práci jiných.Nakakat, pane!

Souhlasím  |  Nesouhlasím  |  Odpovědět
avatar
 | Microsoft Windows 10 Firefox 116.0

" Zkoušel jsem je oslovit oficiální cestou - e-mailem i FB na několik kontaktů i přímo správce webu pro získání oficiálního přístupu k API, ale nikdy jsem ani neobdržel žádnou reakci. " - aspon si precti dotaz cely...

Souhlasím  |  Nesouhlasím  |  Odpovědět
 |   |  Microsoft Windows 10 Firefox 116.0

Jojo, to že má třeba freemail na spamlistech, ho určitě opravňuje k parazitování...Ale notak, to nemůžeš myslet vážně!

Souhlasím  |  Nesouhlasím  |  Odpovědět
 |   |  Microsoft Windows 10 Firefox 116.0

Proč by nemohl myslet vážně, aby sis přečetl celý dotaz?

Souhlasím  |  Nesouhlasím  |  Odpovědět
 |   |  Microsoft Windows 10 Firefox 116.0

Takže, když si s tebou někdo nechce na ulici povídat a ignoruje tě, je naprosto v pořádku, když ho okradeš.

Souhlasím  |  Nesouhlasím  |  Odpovědět
avatar
 | Microsoft Windows 10 Mozilla 102.0

„Nicméně přímo na webu mají možnost tisku/exportu do XLS” = nejde o krádež, ale IMHO človek niekomu ponúkne za pomoc Kč, ale ten dotyčný si vezme € v tej istej hodnote. Okradne ho?

Souhlasím  |  Nesouhlasím  |  Odpovědět
 | Android Chrome 116.0

Ovsem nad vase sily je zrejme precist cely dotaz, to se taky jen tak nevidi.

Souhlasím  |  Nesouhlasím  |  Odpovědět

Související témata: API, Dolování, Prolomení, Ping Pong, Pong, Fetch, Šikovný programátor, Svaz, JSON, Úspěšnost, Spouštěč