Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> Pobranie aktualnych składek ZUS
Lacki2006
post
Post #1





Grupa: Zarejestrowani
Postów: 107
Pomógł: 0
Dołączył: 3.03.2012

Ostrzeżenie: (0%)
-----


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
Go to the top of the page
+Quote Post
Kshyhoo
post
Post #2





Grupa: Opiekunowie
Postów: 3 855
Pomógł: 317
Dołączył: 4.01.2005
Skąd: że




Po co dwa identyczne tematy?
Zawsze istnieje sposób. cURL.
Go to the top of the page
+Quote Post
in5ane
post
Post #3





Grupa: Zarejestrowani
Postów: 1 335
Pomógł: 34
Dołączył: 9.11.2005
Skąd: Wrocław

Ostrzeżenie: (10%)
X----


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.
Go to the top of the page
+Quote Post
ziolo
post
Post #4





Grupa: Zarejestrowani
Postów: 82
Pomógł: 20
Dołączył: 17.01.2009
Skąd: Kraków

Ostrzeżenie: (0%)
-----


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;
Go to the top of the page
+Quote Post
Pyton_000
post
Post #5





Grupa: Zarejestrowani
Postów: 8 068
Pomógł: 1414
Dołączył: 26.10.2005

Ostrzeżenie: (0%)
-----


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.
Go to the top of the page
+Quote Post
Lacki2006
post
Post #6





Grupa: Zarejestrowani
Postów: 107
Pomógł: 0
Dołączył: 3.03.2012

Ostrzeżenie: (0%)
-----


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ę

Go to the top of the page
+Quote Post
Pyton_000
post
Post #7





Grupa: Zarejestrowani
Postów: 8 068
Pomógł: 1414
Dołączył: 26.10.2005

Ostrzeżenie: (0%)
-----


w źródle strony
Go to the top of the page
+Quote Post
ziolo
post
Post #8





Grupa: Zarejestrowani
Postów: 82
Pomógł: 20
Dołączył: 17.01.2009
Skąd: Kraków

Ostrzeżenie: (0%)
-----


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ąć.

Ten post edytował ziolo 10.05.2014, 09:36:56
Go to the top of the page
+Quote Post
Lacki2006
post
Post #9





Grupa: Zarejestrowani
Postów: 107
Pomógł: 0
Dołączył: 3.03.2012

Ostrzeżenie: (0%)
-----


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();
Go to the top of the page
+Quote Post
ziolo
post
Post #10





Grupa: Zarejestrowani
Postów: 82
Pomógł: 20
Dołączył: 17.01.2009
Skąd: Kraków

Ostrzeżenie: (0%)
-----


  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.

Ten post edytował ziolo 10.05.2014, 15:20:21
Go to the top of the page
+Quote Post

Reply to this topicStart new topic
2 Użytkowników czyta ten temat (2 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Aktualny czas: 23.08.2025 - 11:38