Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> Pobieranie nagłówków danych z innej www
adek-
post
Post #1





Grupa: Zarejestrowani
Postów: 124
Pomógł: 2
Dołączył: 19.04.2007
Skąd: Częstochowa

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


Witam, czy da się pobrać ze strony już przetworzonej dane i wrzucenie ich do swojej strony? Przechwycenie nagłówka, bądź coś takiego. A dokładniej chodzi o jedna wartość http://stooq.pl/q/?s=xaupln i jest tam wartość
"Kurs 4194.8 zł/ozt". Chciał bym wartość 4194,8 pobrać i wrzucić u siebie do obróbki i wyliczeń. Napisałem do nich, czy udostępniają takie pojedyncze dane, ale brak odezwu z ich strony, a wiem, że udsotępniają takie webmasterskie narzędzia, ale np w postaci wykresów, czy historii całościowej. Da sie pobierac takie dane i sczytywać?



edytowano:
daja tez takie wpisy
<script type="text/javascript" src="http://static.stooq.pl/pp/w.js"></script>
gdzie chyba łatwiej by było pobierać dane poprzez formatowanie tego js. Ale ten js akurat nie przedstawia dokładnie tego co potrzebuję ;/

Ten post edytował adek- 28.06.2011, 22:04:06
Go to the top of the page
+Quote Post
Spawnm
post
Post #2





Grupa: Moderatorzy
Postów: 4 069
Pomógł: 497
Dołączył: 11.05.2007
Skąd: Warszawa




file_get_constents + preg_match
Go to the top of the page
+Quote Post
Daimos
post
Post #3





Grupa: Zarejestrowani
Postów: 1 319
Pomógł: 118
Dołączył: 26.11.2003
Skąd: Lublin

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


ewentualnie poszukaj na stronie nbp, zazwyczaj udostępniają przynajmniej rssy z takimi danymi


--------------------
scriptun.com. Startup z poradnikami do gier ttp.zone i ttpzone.pl
Go to the top of the page
+Quote Post
adek-
post
Post #4





Grupa: Zarejestrowani
Postów: 124
Pomógł: 2
Dołączył: 19.04.2007
Skąd: Częstochowa

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


Daimos niestety NBP udostepnia takie wartości ale bez międzybanku ;/ Więc jest mi bezużyteczny... stąd moje zapytanie
Spawnm działa, ale wartości te wrzuca w niezbyt czystej postaci. Dało by sie pousuwać te ( [0] +> itd? tak żeby została sama wartość 4195,4, bo chcę ją wciągnąć w zmienną którą będę obrabiał, mnożył itd?
Wiem, że gdyby to była stała liczba było by łatwiej, ale ona się zmienia co 1-3 sec.
Wyświetla mi tak:
  1. Array
  2. (
  3. [0] => Kurs
  4. 4195.4 zł/ozt
  5. [1] => /
  6. )


a zrobilem to tak
  1. <?php
  2. $subject = file_get_contents("http://stooq.pl/q/?s=xaupln");
  3. str_replace('/','//',$subject);
  4. preg_match(' /Kurs<br>.*?(s*?.*?)*?ozt/i', $subject, $matches);
  5. echo "<br /><pre>";
  6. print_r ($matches);
  7. echo "</pre>";
  8. ?>


Ten post edytował adek- 29.06.2011, 08:15:10
Go to the top of the page
+Quote Post
Fluke
post
Post #5





Grupa: Zarejestrowani
Postów: 247
Pomógł: 9
Dołączył: 20.09.2010
Skąd: Kraków

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


A tutaj by się nie przydał SOAP?
Go to the top of the page
+Quote Post
adek-
post
Post #6





Grupa: Zarejestrowani
Postów: 124
Pomógł: 2
Dołączył: 19.04.2007
Skąd: Częstochowa

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


Ale z tego co widze SOAP jest do transmisji danych xml, a takich tutaj nie ma, tzn ja nie mam do nich dostępu. Łatwiej było by chyba czymś przetworzyć dane i wyrzucić te znaki niepotrzebne. Jest taka funkcja która mogła by się z tym rozprawić? Nakierujcie proszę.
Go to the top of the page
+Quote Post
cycofiasz
post
Post #7





Grupa: Zarejestrowani
Postów: 711
Pomógł: 127
Dołączył: 5.07.2008
Skąd: Łódź

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


  1. preg_match('#aq_xaupln_c1\|3>([0-9\.]+)</span>#Uis',$subject,$matches);
Go to the top of the page
+Quote Post
adek-
post
Post #8





Grupa: Zarejestrowani
Postów: 124
Pomógł: 2
Dołączył: 19.04.2007
Skąd: Częstochowa

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


Dzięki wielkie chłopaki... Spawnm i cycofiasz Wasze podpowiedzi były trafne, udało się i dziękówki lecą

  1. //pobieranie danych
  2. $subject = file_get_contents("http://stooq.pl/q/?s=xaupln");
  3. str_replace('/','//',$subject);
  4. preg_match('#aq_xaupln_c1\|3>([0-9\.]+)</span>#Uis',$subject,$matches);
  5. echo "<br /><pre>";
  6. // print_r ($matches);
  7. $wartosc = $matches[1];
  8. echo "<b>Wartość zmiennej to - " .$wartosc. " zł</b><br>";
  9. echo "</pre>";


Mam tylko pytanie do cycofiasza o rozwikłanie dla mnie zagadki.
kod na stronie źródłowej:
  1. <td id="f13" height="55" width="15%">Kurs<br><b><span style="font-weight: bold;" id="aq_xaupln_c1">4159.7</span></b>&nbsp;zł/ozt</td>

kod który Ty umieściłeś:
  1. preg_match('#aq_xaupln_c1\|3>([0-9\.]+)</span>#Uis',$subject,$matches);

na www jest < .... id="aq_xaupln_c1"> a Ty po c1 zamiast "> umieściłeś \|3>([0-9\.]+) oraz na końcu #Uis
co oznaczają te dane i co dały tak naprawdę, mógłbyś proszę, albo ktoś z obecnych wytłumaczyć zasadę powyższego? Z góry dziękuję
Go to the top of the page
+Quote Post
cycofiasz
post
Post #9





Grupa: Zarejestrowani
Postów: 711
Pomógł: 127
Dołączył: 5.07.2008
Skąd: Łódź

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


Ja pobrałem te dane z innego miejsca w kodzie:

  1. Kurs<br><b><span style=font-weight:bold id=aq_xaupln_c1|3>4158.8</span>


Co do Uis to są to modyfikatory zmieniające zachowanie wyrażenia. i = nie zwraca uwagi na wielkość liter , s = kropka (wieloznacznik) może oznaczać także łamanie linii (domyślnie nie zawiera łamania linii) , U - kończy dopasowywać .+ najszybciej jak tylko możliwe, gdyby tego nie było to za pewne oprócz kwoty pobrałoby także wszystko do ostatniego znacznika </span>
Go to the top of the page
+Quote Post

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

 



RSS Aktualny czas: 21.08.2025 - 11:42