Fórum Root.cz
Hlavní témata => Software => Téma založeno: kosin 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
-
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
-
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
-
To na co si narazil je jenom API na předvyplnění toho formuláře co mají na idosu. Nic jiného to neumí.
-
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š.
-
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ů.
-
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.
-
Jestli jste ve Windows, nainstalujte si Fiddler proxy a tam uvidíte přesný požadavek.
-
Jestli jste ve Windows, nainstalujte si Fiddler proxy a tam uvidíte přesný požadavek.
diky za tip ale mam ubuntu
-
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)
-
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.
-
Jenom mě zajímá, co že si to vlastně chceš konkrétně zobrazovat?
-
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.
-
To, že s Wiresharkem neumíte, neznamená, že je špatný. 8)
-
Děkuji za naprosto nesmyslnou odpověď. Řekl jsem, že Wireshark na to není vhodný. Ne, že je špatný. Ale na tenhle účel se nehodí.
-
Děkuji za naprosto nesmyslnou odpověď. Řekl jsem, že Wireshark na to není vhodný. Ne, že je špatný. Ale na tenhle účel se nehodí.
No, když myslíš ;) V tahání obrovského množství dat ze stránek, nebo ze serverů mám své zkušenosti a vím, že Wireshark pro tyto účely funguje. Přesvědčovat tě nebudu, moje doporučení Wiresharku bylo stejně směrováno lidem, kteří se chtějí něco naučit a trochu pochopit, jak ty protokoly (v tomhle případě HTTP(s) ) fungují a co tomu serveru poslat, aby nám vrátil, co chceme...
-
Dobře, používejte si nástroj, jaký chcete. Mám s tím také dost zkušeností a jednodušší, než sledovat pakety ve Wiresharku, je si ten požadavek zobrazit ve Fiddleru. Jde o to se jednoduše dobrat výsledku. Není třeba při tom vypadat cool :)
-
Dobře, používejte si nástroj, jaký chcete. Mám s tím také dost zkušeností a jednodušší, než sledovat pakety ve Wiresharku, je si ten požadavek zobrazit ve Fiddleru. Jde o to se jednoduše dobrat výsledku. Není třeba při tom vypadat cool :)
Nejde mi o to vypadat cool. Jde mi o to efektivně odvést práci, abych práci, kterou mám ohodnocenou na 8 hodin, udělal za 4 hodiny a další 4 zaplacené hodiny se věnoval svým věcem...
-
wireshark, to je jak kanon na vrabce, ale proc ne... :D Nevim, jaky maj/nemaj api, ale jelikoz maji appku na mobily, tak nejaka cesta asi bude.
-
Právě jsem se vám snažil vysvětlit, že pro tenhle účel je rychlejší Fiddler. Možná jste ho ale nikdy nezkusil, tak to nemůžete posoudit.
-
Právě jsem se vám snažil vysvětlit, že pro tenhle účel je rychlejší Fiddler. Možná jste ho ale nikdy nezkusil, tak to nemůžete posoudit.
Nemůžu znát všechno, tak dobře na tom zase nejsem. ;D :( Efektivnější nástroje existovat mohou, to nepopírám. Ten Fiddler vyzkouším a uvidím. Opět mám Windows, takže to můžu zkusit.
-
Ahoj, když by se ti to povedlo, měl bych o tuto funkcionalitu zájem. Myšlenka už mne také napadla, jen nemám tolik času to vytvořit :(
-
Nepotřebujete žádný nástroj. Jen prohlížeč.
-
s wiresharkom nie je ziadny problem, len ho treba trochu ovladat.. poslat poziadavku, potom Follow TCP Stream a krasne vidis co a ako sa posiela.. Fiddler je tiez OK, ale wireshark takisto .. Netreba odsudzovat nieco co neviem pouzivat.
-
Otevri si chrome, otevri idos a zmackni ctrl+shift+i. Tam si otevri network a udelej si nejakej request. Z hlavicek potom vyctes co se tam vsechno deje.
Jelikoz je to napsany nejspis v tom posratym asp.net tak tam budes bojovat s viewstatem, tzn minimalne drzet cookies bude nutnost. Have a fun
-
Mimochodem chrome inspector umi jeste jednu hezkou vec, kdyz si das pravym tlacitkem na nejakej ten request tak je tam Copy > Copy as cURL coz obcas dost usnadni praci i kdyz tady spis ne...
-
Sorry ne cookies (i kdyz mozna nakonec i ty budou potreba), ale parsovat html asi bude treba. Jednim curlem to resitelny nejspis neni...
-
dik borci za tipy, zatim sem zbezne proletl moznosti jako wireshark, fiddler a primo browser a zatim pro me nejcitelnejsi byl ten browser, ale jak rikam bylo to zatim takove rychle seznameni, fiddler urcite vyzkousim taky. kazdopadne se v tom ve volnych chvilich povrtam a uvidim jaky bude vysledek. Jesli se k necemu pouzitelnemu doberu tak dam vedet. diky vsem
-
API Chapsu je tady: https://crws.docs.apiary.io/#
Nicméně pro Sailfish OS je k dispozici program v příkazovém řádku pro zjištění spojů v Idosu. Je to napsané v Pythonu, takže po rozbalení z rpm balíčku by se to mělo dát použít i na PC. https://openrepos.net/content/nodevel/spoje
-
Data z chaps-u?
:) ;) :D ;D
-
V tahání obrovského množství dat ze stránek, nebo ze serverů mám své zkušenosti a vím, že Wireshark pro tyto účely funguje.
jak přesně ten wireshark používáš?
-
Ahoj, něví někdo, jak používat ten script spoje?
~/Desktop$ python ./spoje praha dunajecka radlicka
nepodařilo se zjistit hodnotu parametru 'link'
Díky. ???
-
Ahoj, něví někdo, jak používat ten script spoje?
~/Desktop$ python ./spoje praha dunajecka radlicka
nepodařilo se zjistit hodnotu parametru 'link'
Díky. ???
ten skript je stary. Pravdepodobne tu stranku od te doby zmenili.
-
pri odesilani formulare musis dat do postu vsechna predvyplnena pole a poslat to s cookies.
zde je jen takovy nastrel
from requests_html import HTMLSession
MESTO = 'praha'
ODKUD, KAM = 'dunajecka', 'radlicka'
URL = 'https://jizdnirady.idnes.cz/%s/spojeni/' % MESTO
def fill_form(d, odkud, kam):
d('label:contains("Odkud")').parent().find('input').val(odkud)
d('label:contains("Kam")').parent().find('input').val(kam)
return d
def form_data(d):
return {e.name:e.value for e in d('form input')}
session = HTMLSession()
d = session.get(URL).html.pq
data = form_data(fill_form(d, ODKUD, KAM))
res_d = session.post(URL, data=data).html.pq
print(res_d)
res_d je stranka s vysledky, ze ktere si muzes vyselektovat co potrebujes. Je to pyquery objekt.
-
V tahání obrovského množství dat ze stránek, nebo ze serverů mám své zkušenosti a vím, že Wireshark pro tyto účely funguje.
jak přesně ten wireshark používáš?
Častěji používám Záznam síťové aktivity v Chrome, ale pokud dojde na Wireshark, tak normálně zapnu a pak filtruju http protokol a adresu/doménu serveru
-
V tahání obrovského množství dat ze stránek, nebo ze serverů mám své zkušenosti a vím, že Wireshark pro tyto účely funguje.
jak přesně ten wireshark používáš?
Častěji používám Záznam síťové aktivity v Chrome, ale pokud dojde na Wireshark, tak normálně zapnu a pak filtruju http protokol a adresu/doménu serveru
kolik stránek dnes funguje na http? https bys musel dešifrovat.