Použití curl na MHD spojení

kosin

Použití curl na MHD spojení
« kdy: 12. 05. 2018, 14:44:35 »
cau vespolek,
je mozne pres curl request dostat data napr. z https://jizdnirady.idnes.cz/brno/spojeni/ spojeni z jedne zastavky na druhou? tzn. nemusim vyklikavat porad to same na webu ale ve vysledku se mi to bude zobrazovat nekde na displeji na RPi s aktualizaci kazdych x minut? diky
« Poslední změna: 13. 05. 2018, 23:07:36 od Petr Krčmář »


ožana

Re:curl na MHD spojeni
« Odpověď #1 kdy: 12. 05. 2018, 15:04:01 »
Ti nebrání ti to zkusit. Browser, konzole, logger požadavků.
Ale:
.možná bez cookies to nepůjde
. možná tam bude nějaká kontrola proti csrf (že post\get request bude chtít token z minulého requestu)

ale třeba už konečna udělali api

kosin

Re:curl na MHD spojeni
« Odpověď #2 kdy: 12. 05. 2018, 16:01:23 »
po trochu googlovani jsem narazil na jejich API (https://www.chaps.cz/files/idos/IDOS-API.pdf), tim padem dokazu zeskladat url
https://jizdnirady.idnes.cz/brno/spojeni/?f=vlhka&t=masna&date=12.5.2018&time=16:00

ale ted nevim jak vlastne ten link pouzit abych dostal vypis spoju v textove forme, mate nejaky napad? s API mam trosku zkusenosti ale spise python request v json formatu, tenhle format mi nic moc nerika.

dekuju

David1234

Re:curl na MHD spojeni
« Odpověď #3 kdy: 12. 05. 2018, 16:48:33 »
To na co si narazil je jenom API na předvyplnění toho formuláře co mají na idosu. Nic jiného to neumí.

jdusizasvym

Re:curl na MHD spojeni
« Odpověď #4 kdy: 12. 05. 2018, 17:09:30 »
Pošli HTTP požadavek na server iDos a ten by měl poslat odezvu v html. Html projdeš html parserem (který si samozřejmě nebudeš psát sám, ale využiješ např. Beautiful soup 4 pro Python) a sezobeš si z toho, co potřebuješ.


jdusizasvym

Re:curl na MHD spojeni
« Odpověď #5 kdy: 12. 05. 2018, 17:12:26 »
Pošli HTTP požadavek na server iDos a ten by měl poslat odezvu v html. Html projdeš html parserem (který si samozřejmě nebudeš psát sám, ale využiješ např. Beautiful soup 4 pro Python) a sezobeš si z toho, co potřebuješ.

Jo na http komunikaci si taky najdi nějaký modul (knihovnu). Nemá smysl ztrácet čas tím, že si http header budeš psát sám ručně. Ručně to má smysl jen z edukativních důvodů.

kosin

Re:curl na MHD spojeni
« Odpověď #6 kdy: 12. 05. 2018, 19:17:16 »
Pošli HTTP požadavek na server iDos a ten by měl poslat odezvu v html. Html projdeš html parserem (který si samozřejmě nebudeš psát sám, ale využiješ např. Beautiful soup 4 pro Python) a sezobeš si z toho, co potřebuješ.

Jo na http komunikaci si taky najdi nějaký modul (knihovnu). Nemá smysl ztrácet čas tím, že si http header budeš psát sám ručně. Ručně to má smysl jen z edukativních důvodů.

zatim to zkousim jen pres curl, ale nedari se.. zkousel jsem tuny requestu ale vysledek porad stejny, napr.

curl -H 'Content-Type: text/html' -d 'sNoFrom=vlhka&sNoTo=masna' -X POST https://jizdnirady.idnes.cz/brno/spojeni/

v odpovedi jem narazil na promnenne
var sNoFrom='Odkud';
var sNoTo='Kam';

zkousel jsem v payloadu taky davat jako key/value Odkud|Kam ale taky nic.
Vlastne jsem docela zmateny jaka metoda http requestu by to mnela byt... vim jaky je rozdil mezi POST|GET apod. ale v mem usecasu mne to trosku mate :) Jelikoz vkladam data odkud|kam a pak je potrebuju dostat zpet.

David

Re:curl na MHD spojeni
« Odpověď #7 kdy: 12. 05. 2018, 19:27:42 »
Jestli jste ve Windows, nainstalujte si Fiddler proxy a tam uvidíte přesný požadavek.

kosin

Re:curl na MHD spojeni
« Odpověď #8 kdy: 12. 05. 2018, 20:06:15 »
Jestli jste ve Windows, nainstalujte si Fiddler proxy a tam uvidíte přesný požadavek.

diky za tip ale mam ubuntu

jdusizasvym

Re:curl na MHD spojeni
« Odpověď #9 kdy: 12. 05. 2018, 20:13:42 »
Pošli HTTP požadavek na server iDos a ten by měl poslat odezvu v html. Html projdeš html parserem (který si samozřejmě nebudeš psát sám, ale využiješ např. Beautiful soup 4 pro Python) a sezobeš si z toho, co potřebuješ.

Jo na http komunikaci si taky najdi nějaký modul (knihovnu). Nemá smysl ztrácet čas tím, že si http header budeš psát sám ručně. Ručně to má smysl jen z edukativních důvodů.

zatim to zkousim jen pres curl, ale nedari se.. zkousel jsem tuny requestu ale vysledek porad stejny, napr.

curl -H 'Content-Type: text/html' -d 'sNoFrom=vlhka&sNoTo=masna' -X POST https://jizdnirady.idnes.cz/brno/spojeni/

v odpovedi jem narazil na promnenne
var sNoFrom='Odkud';
var sNoTo='Kam';

zkousel jsem v payloadu taky davat jako key/value Odkud|Kam ale taky nic.
Vlastne jsem docela zmateny jaka metoda http requestu by to mnela byt... vim jaky je rozdil mezi POST|GET apod. ale v mem usecasu mne to trosku mate :) Jelikoz vkladam data odkud|kam a pak je potrebuju dostat zpet.

Stáhni si Wireshark a koukni se, jak to tam funguje. Nebo možná bude stačit kouknout v prohlížeči na provoz sítě (F12 a Network)

gll

  • ****
  • 429
    • Zobrazit profil
    • E-mail
Re:curl na MHD spojeni
« Odpověď #10 kdy: 12. 05. 2018, 20:31:56 »
Stáhni si Wireshark a koukni se, jak to tam funguje. Nebo možná bude stačit kouknout v prohlížeči na provoz sítě (F12 a Network)

Wireshark opravdu ne.

cinnamon

Re:curl na MHD spojeni
« Odpověď #11 kdy: 13. 05. 2018, 07:24:51 »
Jenom mě zajímá, co že si to vlastně chceš konkrétně zobrazovat?

David

Re:curl na MHD spojeni
« Odpověď #12 kdy: 13. 05. 2018, 07:45:11 »
Fiddler je i pro Linux a Mac, měl jste se na něj podívat - https://www.telerik.com/fiddler

To je správný nástroj pro zjištění komunikace stránky :) Ne Wireshark.

jdusizasvym

Re:curl na MHD spojeni
« Odpověď #13 kdy: 13. 05. 2018, 07:47:53 »
To, že s Wiresharkem neumíte, neznamená, že je špatný.   8)

David

Re:curl na MHD spojeni
« Odpověď #14 kdy: 13. 05. 2018, 07:54:12 »
Děkuji za naprosto nesmyslnou odpověď. Řekl jsem, že Wireshark na to není vhodný. Ne, že je špatný. Ale na tenhle účel se nehodí.