Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> wyciąganie danych z wcześniej wczytanej strony
dekrzycho
post
Post #1





Grupa: Zarejestrowani
Postów: 39
Pomógł: 0
Dołączył: 10.01.2005

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


Witam,
Wiem że było to wałkowane ale nie moge znaleść dla siebie żadnych rad...
Może mi pomożecie...

Mam skrypt który pobiera mi stronę i daje coś takiego...


  1. <tr bgcolor="#f5f5f5" height="27">
  2. <td cellpadding="3" class="tablebody" align="left"><a href="/dla_ciebie/centrum_oszczedzania/fundusze_inwestycyjne/?_fund=1182%20">AIG TFI S.A.</a></td>
  3. <td background="/images/backgrounds/co_point.gif" width="1"><img src="/images/backgrounds/co_point.gif" border="0" height="1" width="1"></td>
  4. <td cellpadding="3" class="tablebody1on" align="left"><a href="/dla_ciebie/centrum_oszczedzania/fundusze_inwestycyjne/?_fund=1182%20">AIG FIO Akcji</a></td>
  5. <td background="/images/backgrounds/co_point.gif" width="1"><img src="/images/backgrounds/co_point.gif" border="0" height="1" width="1"></td>
  6. <td cellpadding="3" class="tablebody" align="left"><a href="/dla_ciebie/centrum_oszczedzania/fundusze_inwestycyjne/rodzaje_funduszy" onclick="submitForm('FA')">FA</a></td>
  7. <td background="/images/backgrounds/co_point.gif" width="1"><img src="/images/backgrounds/co_point.gif" border="0" height="1" width="1"></td>
  8. <td cellpadding="3" class="tablebody" align="left">
  9. <a href="/dla_ciebie/centrum_oszczedzania/jak_oszczedzac?_a=3459"><img src="/images/common/kolo.gif" border="0" height="6" width="7"><img src="/images/common/kolo.gif" border="0" height="6" width="7"><img src="/images/common/kolo.gif" border="0" height="6" width="7"></a>
  10. </td>
  11. <td background="/images/backgrounds/co_point.gif" width="1"><img src="/images/backgrounds/co_point.gif" border="0" height="1" width="1"></td>
  12. <td cellpadding="3" class="tablebody" align="left"><nobr>17,18</nobr></td>
  13.  
  14. <td background="/images/backgrounds/co_point.gif" width="1"><img src="/images/backgrounds/co_point.gif" border="0" height="1" width="1"></td>
  15. <td cellpadding="3" class="tablebody" align="left"><nobr>1,66</nobr></td>
  16. <td background="/images/backgrounds/co_point.gif" width="1"><img src="/images/backgrounds/co_point.gif" border="0" height="1" width="1"></td>
  17. <td class="tablebody" align="right">
  18. <nobr>1,96</nobr></td>
  19. <td background="/images/backgrounds/co_point.gif" width="1"><img src="/images/backgrounds/co_point.gif" border="0" height="1" width="1"></td>
  20. <td class="tablebody" align="right">
  21. <nobr>10,55</nobr></td>
  22. <td background="/images/backgrounds/co_point.gif" width="1"><img src="/images/backgrounds/co_point.gif" border="0" height="1" width="1"></td>
  23. <td class="tablebody" align="right">
  24. <nobr>17,43</nobr></td>
  25. <td background="/images/backgrounds/co_point.gif" width="1"><img src="/images/backgrounds/co_point.gif" border="0" height="1" width="1"></td>
  26. <td class="tablebody" align="right">
  27.  
  28. <nobr>30,55</nobr></td>
  29. <td background="/images/backgrounds/co_point.gif" width="1"><img src="/images/backgrounds/co_point.gif" border="0" height="1" width="1"></td>
  30. <td class="tablebody" align="right">
  31. <nobr>---</nobr></td>
  32. <td background="/images/backgrounds/co_point.gif" width="1"><img src="/images/backgrounds/co_point.gif" border="0" height="1" width="1"></td>
  33. <td cellpadding="3" class="tablebody" align="left"><nobr>16.03.2006</nobr></td>
  34. </tr>




A ja bym chciał otrzymać trzy dane z tej sieczki......
Nazwa wartość data
AIG FIO Akcji 17,18 16.03.2006

W tym krypcie jest więcej informacji ale nie są one mi potrzebna...
Może pomożecie mi z tym.
Z góry dzięki za pomoc...
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi (1 - 11)
nospor
post
Post #2





Grupa: Moderatorzy
Postów: 36 557
Pomógł: 6315
Dołączył: 27.12.2004




Przenoszę z php5


--------------------

"Myśl, myśl, myśl..." - Kubuś Puchatek || "Manual, manual, manual..." - Kubuś Programista
"Szukaj, szukaj, szukaj..." - Kubuś Odkrywca || "Debuguj, debuguj, debuguj..." - Kubuś Developer

Go to the top of the page
+Quote Post
chomiczek
post
Post #3





Grupa: Zarejestrowani
Postów: 271
Pomógł: 4
Dołączył: 5.01.2005

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


preg_match_all() warunek taki, że strona musi być w miarę sztywna w środku.. zbudowana w oparciu o jakis stały schemat.


--------------------
created by chomiczek
Go to the top of the page
+Quote Post
dekrzycho
post
Post #4





Grupa: Zarejestrowani
Postów: 39
Pomógł: 0
Dołączył: 10.01.2005

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


Cytat(chomiczek @ 2006-03-18 20:54:34)
preg_match_all() warunek taki, że strona musi być w miarę sztywna w środku.. zbudowana w oparciu o jakis stały schemat.

Tak, znalazłem już że mogę tą funkcją zrobić to ale ona ma za skomplikowane parametry...
Możesz mi podrzucić coś bo próbowałem tak ale nie działa....


  1. <?php
  2.  
  3. $data=curl_exec($ch); //w tej zmiennej przechowywana jest zawartość strony
  4. ///////////////////
  5. preg_match_all ('#([A-Za-z- ]+)</a></td>
  6. ([0-9.]+)</nobr></td>>
  7. ([0-9.]+)</nobr></td>>
  8. ([0-9.]+)</nobr></td>', $data, $wynik);
  9.  
  10.  
  11.  
  12.  
  13.  
  14.  
  15.  
  16. echo $wynik;
  17.  
  18. ?>
Go to the top of the page
+Quote Post
chomiczek
post
Post #5





Grupa: Zarejestrowani
Postów: 271
Pomógł: 4
Dołączył: 5.01.2005

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


ja bym to zrobił tak:
  1. <?php
  2.  
  3. preg_match_all ('/<tr bgcolor=\"#f5f5f5\".*?fund=1182%20\">(.*?)</a>.*?class="tablebody" align=\"left\"><nobr>(.*?)<\/nobr><\/td>', $data, $wynik);
  4.  
  5. ?>


teraz $wynik[1][0] powinno Ci zwrócić AIG TFI S.A
a $wynik[2][0] 17,18

z resztą kombinuj

P.S. Pisałem z ręki, więc moze niedziałać

Ten post edytował chomiczek 18.03.2006, 22:44:49


--------------------
created by chomiczek
Go to the top of the page
+Quote Post
dekrzycho
post
Post #6





Grupa: Zarejestrowani
Postów: 39
Pomógł: 0
Dołączył: 10.01.2005

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


Cytat(chomiczek @ 2006-03-18 21:44:24)
ja bym to zrobił tak:
  1. <?php
  2.  
  3. preg_match_all ('/<tr bgcolor=\"#f5f5f5\".*?fund=1182%20\">(.*?)</a>.*?class="tablebody" align=\"left\"><nobr>(.*?)<\/nobr><\/td>', $data, $wynik);
  4.  
  5. ?>


teraz $wynik[1][0] powinno Ci zwrócić AIG TFI S.A
a $wynik[2][0] 17,18

z resztą kombinuj

P.S. Pisałem z ręki, więc moze niedziałać

dzieki za podpowiedź ale coś nie działa...
wyświetla mi komunikat


Warning: preg_match_all(): Unknown modifier 'a' in /home/

holerka nie znam tych podstawowych wyrażeń....

Ten post edytował dekrzycho 19.03.2006, 10:47:01
Go to the top of the page
+Quote Post
Zbłąkany
post
Post #7


Administrator serwera


Grupa: Developerzy
Postów: 521
Pomógł: 13
Dołączył: 2.04.2004
Skąd: 52°24' N 16°56' E

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


Przy zamykającym tagu </a> jest błąd, powino być:
  1. <?php
  2. preg_match_all ('/<tr bgcolor=\"#f5f5f5\".*?fund=1182%20\">(.*?)<\/a>.*?class=\"tablebody\" align=\"left\"><nobr>(.*?)<\/nobr><\/td>', $data, $wynik);
  3. ?>


Ten post edytował Zbłąkany 19.03.2006, 11:47:13


--------------------
Środowisko: Gentoo 2008.0 | Apache | PHP5 | PostgreSQL | MySQL | Postfix
Workstation: Gentoo 2008.0 | Firefox
Thomas Alva Edison: "Aby coś wynaleźć wystarczy odrobina wyobraźni i sterta złomu ..."
Odpowiedź na każde pytanie typu "Jak ...": "Nie da się, to nie PostgreSQL"
Go to the top of the page
+Quote Post
dekrzycho
post
Post #8





Grupa: Zarejestrowani
Postów: 39
Pomógł: 0
Dołączył: 10.01.2005

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


Cytat(Zbłąkany @ 2006-03-19 10:46:45)
Przy zamykającym tagu </a> jest błąd, powino być:
  1. <?php
  2. preg_match_all ('/<tr bgcolor=\"#f5f5f5\".*?fund=1182%20\">(.*?)<\/a>.*?class=\"tablebody\" align=\"left\"><nobr>(.*?)<\/nobr><\/td>', $data, $wynik);
  3. ?>

tera krzyczy cos takiego....

Warning: preg_match_all(): No ending delimiter '/' found in /home



ja nie mam pojecia juz jak to napisac....
Go to the top of the page
+Quote Post
tiraeth
post
Post #9





Grupa: Przyjaciele php.pl
Postów: 1 789
Pomógł: 41
Dołączył: 30.10.2003
Skąd: Wrocław

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


  1. <?php
  2. preg_match_all ('/<tr bgcolor=\"#f5f5f5\".*?fund=1182%20\">(.*?)<\/a>.*?class=\"tablebody\" align=\"left\"><nobr>(.*?)<\/nobr><\/td>/', $data, $wynik);
  3. ?>


Wyrażenie rozpoczynasz '/<tr więc wypadałoby zakończyć ten parametr też *slashem* td>/'

smile.gif
Go to the top of the page
+Quote Post
dekrzycho
post
Post #10





Grupa: Zarejestrowani
Postów: 39
Pomógł: 0
Dołączył: 10.01.2005

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


Cytat(tiraeth @ 2006-03-19 13:02:46)
  1. <?php
  2. preg_match_all ('/<tr bgcolor=\"#f5f5f5\".*?fund=1182%20\">(.*?)<\/a>.*?class=\"tablebody\" align=\"left\"><nobr>(.*?)<\/nobr><\/td>/', $data, $wynik);
  3. ?>


Wyrażenie rozpoczynasz '/<tr więc wypadałoby zakończyć ten parametr też *slashem* td>/'

smile.gif

Napisałem coś takiego.....

  1. <?php
  2.  
  3. preg_match_all( '!<nobr>(.*?)</nobr>!si',$data, $wynik); 
  4.  
  5. ?>


Pobiera mi dane liczbowe,

a ten skrypt poniżej pobiera mi nazwy
  1. <?php
  2.  
  3. preg_match_all ('!<td cellpadding=\"3\" class=\"tablebody1on\" align=\"left\"><a.*?\">(.*?)<\/a><\/td>!si', $data, $wynik);
  4.  
  5. ?>

A może wiecie jak to połączyć.....

Dziki za podpowiedzi...
Go to the top of the page
+Quote Post
chomiczek
post
Post #11





Grupa: Zarejestrowani
Postów: 271
Pomógł: 4
Dołączył: 5.01.2005

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


wrzuc do jednego, a pomiędzy obydwa wrzuc .*? lub .* zależnie od tego jak to wygląda u Ciebie w kodzie.. ewentualnie mozesz wrzucić jakiś fragment kodu który pojawi sie pomiędzy tym. I faktycznie zapomniałem od / na końcu sad.gif


--------------------
created by chomiczek
Go to the top of the page
+Quote Post
dekrzycho
post
Post #12





Grupa: Zarejestrowani
Postów: 39
Pomógł: 0
Dołączył: 10.01.2005

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


Cytat(chomiczek @ 2006-03-19 19:01:09)
wrzuc do jednego, a pomiędzy obydwa wrzuc .*? lub .* zależnie od tego jak to wygląda u Ciebie w kodzie.. ewentualnie mozesz wrzucić jakiś fragment kodu który pojawi sie pomiędzy tym. I faktycznie zapomniałem od / na końcu sad.gif

Dzięki za pomoc,
fantastycznie działa..
Teraz musze pomyśleć jak z tego wyciągać dane które mnie interesują i wrzucać do MySQLa.

Jeszcze raz dziękuję...
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: 20.08.2025 - 11:51