Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: Pobranie aktualnych składek ZUS
Forum PHP.pl > Forum > PHP
Lacki2006
Witam
Czy istnieje możliwość pobrania np przez API aktualnych skladek do ZUS

Zus je udostępnia na tej stronie ale czy jest jakieś API którym można by je pobrać i umiescić na swojej stronie ?
http://www.zus.pl/seminariaprognozy/defaul...p?p=1&id=35

Pozdrawiam
Kshyhoo
Po co dwa identyczne tematy?
Zawsze istnieje sposób. cURL.
in5ane
Wykorzystaj CURL. Pobierz całą stronę. Potem preg_match'em wybierz sobie treść z <table class="tabSlim" width="100%" border="0" cellspacing="0" cellpadding="3">(.*)</table> i później dalej preg'uj sobie dane z tej tabelki. Wszystko możesz sobie ładnie wrzucić do własnych zmiennych.
ziolo
Cytat(in5ane @ 9.05.2014, 10:43:40 ) *
Wykorzystaj CURL. Pobierz całą stronę. Potem preg_match'em wybierz sobie treść z <table class="tabSlim" width="100%" border="0" cellspacing="0" cellpadding="3">(.*)</table> i później dalej preg'uj sobie dane z tej tabelki. Wszystko możesz sobie ładnie wrzucić do własnych zmiennych.



Po co się męczyć ? Polecam bibliotkę phpQuery. Wszelkie parsowania stają się przyjemnością.

Kod dla Zus-u przedstawia się poniżej.

  1. include 'phpQuery-onefile.php';
  2. phpQuery::newDocumentFileHTML('http://www.zus.pl/seminariaprognozy/default.asp?p=1&id=35');
  3. $skladka = pq('.tabSlim tr:nth-child(2) td:nth-child(2)')->html();
  4. echo $skladka;
Pyton_000
Wpisać z palca ? Jak często się to zmienia? Raz na rok? Bez sensu jest pisanie parsera dla tak bzdurnych danych zwłaszcza że jest ich aż tyle że wpisanie z palca zajmie 1/20 czasu poświęconego na napisanie funkcji parsującej.
Lacki2006
Dzięki ziolo super to działa.
A mógłbyś tak na szybko napisać jak to pobiera bo potrzebował bym jeszcze inne stawki rozumiem że za pobranie odpowiada kod
pq('.tabSlim tr:nth-child(2) td:nth-child(2)')->html();
Rozumiem że pg( wyświetla z której tabeli ma pobrać dane )
w wyświetlonym źródle strony ZUS wskazałeś tabele .tabSlim a określiłeś dokładną lokalizację poprzez tr:nth-child(2) td:nth-child(2) skąd wiedziałeś co tu wpisać ?

Dzięki za poradę

Pyton_000
w źródle strony
ziolo
Cytat(Lacki2006 @ 10.05.2014, 09:26:55 ) *
Dzięki ziolo super to działa.
A mógłbyś tak na szybko napisać jak to pobiera bo potrzebował bym jeszcze inne stawki rozumiem że za pobranie odpowiada kod
pq('.tabSlim tr:nth-child(2) td:nth-child(2)')->html();
Rozumiem że pg( wyświetla z której tabeli ma pobrać dane )
w wyświetlonym źródle strony ZUS wskazałeś tabele .tabSlim a określiłeś dokładną lokalizację poprzez tr:nth-child(2) td:nth-child(2) skąd wiedziałeś co tu wpisać ?

Dzięki za poradę


Tak kod:
.tabSlim - znajduję element o klasie tabSlim (jest tylko jeden na stronie - właśnie ta tabela)
tr:nth-child(2) - znajduję drugi wiersz w tej tabeli
td:nth-child(2) - znajduję drugą komórkę w tej tabeli

Chcesz inne komórki robisz:
  1. pq('.tabSlim tr:nth-child(3) td:nth-child(2)')->html();
  2. //albo
  3. pq('.tabSlim tr:nth-child(2) td:nth-child(3)')->html();


To działa dokładnie tak jak w jQuery(jak znasz).
http://www.w3schools.com/jquery/jquery_ref_selectors.asp
Tylko zamiast $ dajemy pg, i można z każdej strony pożyteczne informacje wyciągnąć.
Lacki2006
Dziękuję bardzo przydatne informacje a jeszcze jak bym chciał pobrać inną klasę nie tabelkę to jak to zapisać

chciał bym to pobrać
<div class="paragraf wciecie"><p><strong>Składki za styczeń - grudzień 2014 r.*</strong></p></div></div>
myslałem że może tak ale coś nie pobrało
$tytul = pq('.paragraf wciecie')->html();
ziolo
  1. $skladka = pq('.paragraf.wciecie')->eq(0)->html();


class="paragraf wciecie" - nie oznacza jednej klasy "paragraf wciecie" tylko dwie klasy: paragraf i wciecie

pq('.paragraf .wciecie') - to szukałoby Ci elementu klasy wciecie ktory bylby wewnatrz elementu klasy paragraf

pq('.paragraf.wciecie') - to jak w css, szuka elementu ktory posiada obie klasy na raz

takich elementow jest wiecej na stronie wiec ->eq(liczba) - wybierasz ktory element chcesz pobrac.
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.