potrzebuję zaciągać informacje o rozkładzie pkp lub pks. Tzn kiedy wpiszę u siebie na www np Warszawa - Gdańsk i start 31 maja 2014 (oraz ewentualne miejscowości o które chciałbym zahaczyć) to dostanę dane z rozkładem. Macie pomysł jak to zrobić? Widziałem, że pkp i pks chyba nie ma api. Czy pozostaje tylko parser?
EDIT - OPCJA I
==============
jeśli nie mam jakiegoś wygodnego sposobu to znalazłem taki formularz:
<form class="form" action="http://www.e-podroznik.pl/public/searcherFinal.do" method="post" accept-charset="UTF-8"> <input type="hidden" name="lang" value="pl"> <input type="hidden" name="method" value="plain"> <label id="epodrozniExt1FromLabel" for="epodrozniExt1FromField" class="fieldTitle">Z:
</label> <input class="formField text" id="epodrozniExt1FromField" type="text" name="formCompositeSearcherFinal.fromText" tabindex="1001"><br> <label id="epodrozniExt1ToLabel" for="epodrozniExt1ToField" class="fieldTitle">Do:
</label> <input class="formField text" id="epodrozniExt1ToField" type="text" name="formCompositeSearcherFinal.toText" tabindex="1002"><br> <label id="epodrozniExt1DateLabel" for="epodrozniExt1DateField" class="fieldTitle">Data odjazdu (dd.mm.rrrr):
</label> <input class="formField text" id="epodrozniExt1DateField" type="text" maxlength="10" name="formCompositeSearcherFinal.date" tabindex="1003" value="21.05.2014"><br> <label id="epodrozniExt1TimeLabel" for="epodrozniExt1TimeField" class="fieldTitle">Czas odjazdu (gg:mm):
</label> <input class="formField text" id="epodrozniExt1TimeField" type="text" maxlength="5" name="formCompositeSearcherFinal.time" tabindex="1004" value="12:49"><br> <span class="submitContainer"> <input type="submit" class="submit" id="epodrozniExt1BtnSubmit" value="Szukaj" tabindex="1005">
Dla danych Warszawa - Gdańsk wyświetla kolejny formularz który mój skrypt musiałby zaakceptować. Formularz ten sugeruje bardziej precyzyjne dane czyli:
Warszawa, gm. M. st. Warszawa, pow. m. st. Warszawa - Gdańsk, gm. M. Gdańsk, pow. m. Gdańsk
w sumie mogłoby mi to wystarczyć tylko jak za pomocą skryptu zaakceptować ten drugi formularz tak abym mógł sobie potem pobrać stronę z wynikami wyszukiwania?
Pierwszy etap ogarniam tak:
$postFields['lang'] = 'pl';
$postFields['method'] = 'plain';
$postFields['formCompositeSearcherFinal.fromText'] = 'Warszawa';
$postFields['formCompositeSearcherFinal.toText'] = 'Lublin';
$postFields['formCompositeSearcherFinal.date'] = '28.05.2014';
$postFields['formCompositeSearcherFinal.time'] = '12:49';
$url = "http://www.e-podroznik.pl/public/searcherFinal.do";
$curl = curl_init($url);
curl_setopt
($curl, CURLOPT_COOKIEFILE
, dirname(__FILE__) . 'cookies.txt'); curl_setopt
($curl, CURLOPT_COOKIEJAR
, dirname(__FILE__) . 'cookies.txt'); curl_setopt($curl, CURLOPT_POSTFIELDS, $postFields);
$result = curl_exec($curl);
$result = curl_exec($res);
curl_close($curl);
Teraz w zmiennej $result mam etap drugi formularza który należy zaakceptować a ja nie wiem jak. Zawartość zmiennej $result:
http://www.iv.pl/images/80505594396249128504.pngEDIT - OPCJA II
===============
ok znalazłem inną stronkę
http://beta.rozklad-pkp.pl/ gdzie uzyskanie wyniku jest jedno etapowe - czyli wypełniam formularz i zaraz po submit dostaję wynik. Teraz jak za pomocą culr wysłać dane do tego formularza i potem pobrać wynik? jest tylko problem bo w tym formularza nie wszystkie input'y mają zadeklarowane wartości name.
Ten post edytował qbas-s 21.05.2014, 15:50:24