Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [MYSQL][AJAX]jak pobrać dane?
Forum PHP.pl > Forum > Przedszkole
mrfire
Witam!
Potrzebuję wykonać pewne zestawienie z danych gus (http://www.stat.gov.pl/bdr_n/app/wybrane_cechy.wymiary) i od kilku godzin usilnie przemierzam kod próbując znaleźć sposób na usystematyzowanie pobierania i stworzenie własnej bazy danych, bo na ctrl+c ctrl+v musiałbym poświęcić kolejne lata mojego życia. Z wyrażeniami regularnymi powinienem sobie poradzić, ale samo dotarcie do pobierania danych póki co mi się nie udało. Jako laik ajaxowy przebrnąć przez te linijki to dla mnie koszmar. Nie liczę, że ktoś podsunie mi gotowe rozwiązanie - choć i za to byłbym bardzo wdzięczny, ale za podpowiedź jak się do tego dogrzebać i pomoc choćby najdrobniejszą ucałuję stopy (:)
pi_wo
Jak na moją kwadratową głowę to widzę tutaj potrzebę napisania bot'a (choćby w Javie), który odpytuje serwer wg odpowiednich zmiennych i ajaxowych funkcji (js) i przechwytuje odpowiedź. Problem jest taki, że aby przez to przebrnąć, musiałbyś przeanalizować blisko 4k linii JS, które ta strona ładuje. Duże prawdopodobieństwo, że się mylę i jest jakieś prostsze rozwiązanie... ale tak mi to wygląda. To całkiem skomplikowany program.

Jedyne co Ci rozsądnego mogę poradzić to:
- export wszystkich, interesujących Cię danych do xls,
- konwersja do csv (bo najłatwiej je czytać), lub ściągnięcie klasy obsługującej xls
- i import danych z pliku, czy to bezpośrednio w SQL czy też przez interface napisany w php

http://www.modwest.com/help/kb6-253.html - opis importu z csv do tabeli mysql

PS> Jak sam zauważyłeś to mało prawdopodobne by ktoś podjął się stworzenia gotowego rozwiązania, bo to kupa pracy.
trike
czasochlonna rzecz zrobienie czegos takiego. Mialem cos tylko dla innej strony, zajelo mi to troche czasu zeby przeanalizowac odpowiedzi. Jak juz myslalem dziala to i tak przy niektorych sie wysypywal, generalnie metoda prob i bledow i udoskonalanie kodu dla bledow ktorych nie jestes w stanie przewidziec. Mialem o tyle latwiej ze wszystkie zapytania do strony moglem zadawac poprzez url
mrfire
Cytat(pi_wo @ 1.04.2009, 11:37:19 ) *
Jak na moją kwadratową głowę to widzę tutaj potrzebę napisania bot'a (choćby w Javie), który odpytuje serwer wg odpowiednich zmiennych i ajaxowych funkcji (js) i przechwytuje odpowiedź. Problem jest taki, że aby przez to przebrnąć, musiałbyś przeanalizować blisko 4k linii JS, które ta strona ładuje. Duże prawdopodobieństwo, że się mylę i jest jakieś prostsze rozwiązanie... ale tak mi to wygląda. To całkiem skomplikowany program.

Dokładnie to miałem na myśli, tylko wyrażone mniej dosłownym zasobem słownictwa. Dla wprawionego oka albo kogoś kto programuje ajaxowo na co dzień, być może znalezienie solucji jest łatwe i proste, tym bardziej że wydaje mi się, iż rozwiązania tam wykorzystane nie są specjalnie innowacyjne pomimo zawiłości kodu. Kto programuje ajaxowo nie pracując na gotowych bibliotkach? Sprawdzałem jakie dane lecą tam POSTEM w zapytaniu, ale co próba sypało błędami procedór, czyli wspomniana kwadratura głowy wystepuje tez i u mnie (:)

Cytat(pi_wo @ 1.04.2009, 11:37:19 ) *
Jedyne co Ci rozsądnego mogę poradzić to:
- export wszystkich, interesujących Cię danych do xls,
- konwersja do csv (bo najłatwiej je czytać), lub ściągnięcie klasy obsługującej xls
- i import danych z pliku, czy to bezpośrednio w SQL czy też przez interface napisany w php

http://www.modwest.com/help/kb6-253.html - opis importu z csv do tabeli mysql

PS> Jak sam zauważyłeś to mało prawdopodobne by ktoś podjął się stworzenia gotowego rozwiązania, bo to kupa pracy.

Filtrowanie tam jest ograniczone do pewnej ilości wyników, co uniemożliwia sprawne pobieranie danych w ten sposób i naprawdę trwałoby to wieki.

Cytat(trike @ 1.04.2009, 11:47:41 ) *
czasochlonna rzecz zrobienie czegos takiego. Mialem cos tylko dla innej strony, zajelo mi to troche czasu zeby przeanalizowac odpowiedzi. Jak juz myslalem dziala to i tak przy niektorych sie wysypywal, generalnie metoda prob i bledow i udoskonalanie kodu dla bledow ktorych nie jestes w stanie przewidziec. Mialem o tyle latwiej ze wszystkie zapytania do strony moglem zadawac poprzez url

Gdyby nie było tam ajaxa, javy i innych dzikich wężów a zapytania leciałyby tylko postem lub getem nikomu bym głowy nie zaprzątał tym problemem ;)
pi_wo
Cytat(mrfire @ 1.04.2009, 22:43:44 ) *
[...] rozwiązania tam wykorzystane nie są specjalnie innowacyjne pomimo zawiłości kodu. Kto programuje ajaxowo nie pracując na gotowych bibliotkach? Sprawdzałem jakie dane lecą tam POSTEM w zapytaniu, ale co próba sypało błędami procedór, czyli wspomniana kwadratura głowy wystepuje tez i u mnie (smile.gif


Powróciłem do tematu z ciekawości... Oczywiście, że działa to wszystko na opensourcowym Framework'u o nazwie prototype js. Cóż, kryzys jest, więc muszą oszczędzać smile.gif Kod mimo wszystko cholernie zagmatwany. Elementów aplikacji firmowanych przez YAHOO w ogóle nie da się odczytać. No, ale do rzeczy. Tutaj masz zmienne POST, które Cię interesują:

p_dane {0,1} - odpowiednio dane roczne/kwartalne
p_NTS <-3,16> - zakres jednostek terytorialnych (po kolei tak jak na liście)
p_tery <0, ?) - Jednostki terytorialne
p_czas <0,13> - Lata , gdzie 13 to rok 2007, reszta liniowo w dół
p_wyjscie <0,2> - {0 - HTML w tym samym oknie, 1 - w nowym oknie, 2 - xls (nowe okno z linkiem)}
p_sort = LATA_CECHY - typ sortowania , nie zagłębiałem się w rodzaje
p_cech <0, ?> - id cechy która interesuje Cię w zestawieniu, można ją podejrzeć w łatwy sposób - dodajesz cechę i później dodajesz ją jeszcze raz - wyskoczy alert z ID cechy (informujący o tych, że nie możesz jej dodać ponownie)

Pewnie sam to tego doszedłeś, ale tak na wszelki wypadek...

Pozostaje złapać i przeanalizować odpowiedź w stylu:

GET 4,68 K text/html http://www.stat.gov.pl/bdr_n/app/wybrane_c...&p_typ=HTML
mrfire
pi_wo dzięki Ci za chęci, ale po 2 dniach prób i wiecznych błędów poddałem się dochodząc do jednego wniosku - gra nie warta świeczki, chyba że ktoś jest na emeryturze i ma miesiąc wolnego do badania cech. Niestety w tym kraju instytucje rządowe zawsze muszą być zbyt skomplikowane dla szarego obywatela (: Jeszcze raz dzięki za zaangażowanie, temat uznaję za wyczerpany.
To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę kliknij tutaj.
Invision Power Board © 2001-2025 Invision Power Services, Inc.