Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> [PHP][MySQL]pobieranie danych ze strony (bazy danych)
kecaj_s
post
Post #1





Grupa: Zarejestrowani
Postów: 4
Pomógł: 0
Dołączył: 1.06.2012

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


Witam,
na wstępie proszę o wyrozumiałość i nie pisać, że temat już był. Wiem to, bo przeszukałem to forum i inne miejsca w sieci. Jednakże jestem początkującym i potrzebuję bardziej "łopatologicznego" wyjaśnienia rozwiązania mego zadania.
Chodzi o to, że chcę pobrać wszystkie dane statystyczne ze strony oficjalnej Euro2012:
- http://pl.uefa.com/uefaeuro/season=2012/ma...2131/index.html - dane szczegółowe przykładowego meczu. Dokładnie to potrzebuję pobrać właśnie te dane ze wszystkich rozegranych w fazie eliminacyjnej meczy w każdej ze grup. Zależy mi tylko na tej jednej zakładce, czyli "PRZEGLĄD". Dane miałyby być pobierane tylko raz - nie są przecież aktualizowane. Dane te mogą być zapisywane w bazie MySQL (nie mam pomysłu co do układu).

Także chciałbym wyciągnąć wszystkie dane z tej strony: http://dobradieta.pl/tabele.php?cmd=show_entry&lp=9. Dotyczy to także pozostałych produktów ze strony: http://dobradieta.pl/tabele.php.

Spotkałem się z funkcją file_get_contnets, ale nie mam bladego pojęcia, jak napisać skrypt, aby zadziałał wlaśnie w sposób, jaki opisałem powyżej.

Z góry dziękuję za pomoc. To chyba jest właściwe miejsce (Przedszkole) na takie tematy.
Pozdrawiam,
Jacek
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi (1 - 7)
Kshyhoo
post
Post #2





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




1.
  1. $zmienna = file_get_contents(adres strony)

2.
  1. preg_match_all("wyrazenie regularne",$zmienna, $costam)

Więcej w dziale "giełda", jak się zapewne domyślasz za $...


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





Grupa: Zarejestrowani
Postów: 4 655
Pomógł: 556
Dołączył: 17.03.2009
Skąd: Katowice

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


Cytat(kecaj_s @ 1.06.2012, 21:06:08 ) *
przykładowego meczu. Dokładnie to potrzebuję pobrać właśnie te dane ze wszystkich rozegranych w fazie eliminacyjnej meczy w każdej ze grup. Zależy mi tylko na tej jednej zakładce, czyli "PRZEGLĄD". Dane miałyby być pobierane tylko raz - nie są przecież aktualizowane. Dane te mogą być zapisywane w bazie MySQL (nie mam pomysłu co do układu).

Kraje, zawodnicy, mecze, mecze_zawodnicy

Zawodnicy połączeni z krajami
Mecze połączone z krajami (jaki z jakim)
mecze_zawodnicy - jaki mecz, który zawodnik etc. czy rezerwowy etc.


--------------------
Zainteresowania: C#, PHP, JS, SQL, AJAX, XML, C dla AVR
Chętnie pomogę, lecz zanim napiszesz: Wujek Google , Manual PHP
Go to the top of the page
+Quote Post
kecaj_s
post
Post #4





Grupa: Zarejestrowani
Postów: 4
Pomógł: 0
Dołączył: 1.06.2012

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


Może być, ale jak te dane wyciągnąć??
Go to the top of the page
+Quote Post
Spawnm
post
Post #5





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




Dostałeś odpowiedź od Kshyhoo, gotowca nie dostaniesz.
Go to the top of the page
+Quote Post
kecaj_s
post
Post #6





Grupa: Zarejestrowani
Postów: 4
Pomógł: 0
Dołączył: 1.06.2012

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


OK, dzięki za odpowiedź. Może jest szansa na rozwinięcie tej odpowiedzi, np. jaki adres mam podstawiać (w jaki sposób wyciągnąć dane ze wszystkich meczy) - czy muszę pisać skrypt do każdego meczu i zmieniać adres, czy też nie? Jak to zapisać, czy od razu do bazy MySQL, czy do pliku, tabeli, a potem konwersja do MySQL? Nie oczekuję gotowca, ale jak to w przedszkolu - podpowiedzi i nakierowania :)
Pozdrawiam,
Jacek
Go to the top of the page
+Quote Post
Tajgeer
post
Post #7





Grupa: Zarejestrowani
Postów: 290
Pomógł: 48
Dołączył: 11.05.2008
Skąd: Kielce

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


Jeśli masz trudności z wyrażeniami regularnymi, zainteresuj się PHP Simple HTML DOM Parser.
Go to the top of the page
+Quote Post
kecaj_s
post
Post #8





Grupa: Zarejestrowani
Postów: 4
Pomógł: 0
Dołączył: 1.06.2012

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


Witam ponownie,
zacząłem kombinować i wyszło mi coś takiego:

  1. <?php
  2. $content=file_get_contents("http://pl.uefa.com//uefaeuro//season=2012//matches//round=15171//match=2002131//index.html");
  3. $pattern = '/(table class=\'halfwidth fl\'>)[a-zA-Z0-9]+[<]/';
  4. $ilosc=preg_match_all($pattern,$content,$match );
  5. for($i=0;$i<$ilosc;$i++)
  6. {
  7. $pocz = strpos($match[0][$i], '>');
  8. $zawodnik=substr($match[0][$i],$pocz+1);
  9. $t=explode('<',$zawodnik);
  10. $zawodnik=$t[0];
  11. $sklady[0][$i]=$zawodnik;
  12. }
  13. for($k=0; $k<$ilosc; $k++){
  14. echo "<br/>".$sklady[0][$k];
  15. }
  16. ?>

Chcę ze strony http://pl.uefa.com/uefaeuro/season=2012/ma...2131/index.html pobrać informacje o przebiegu meczu (składy, bramki, kartki, zmiany). Po próbie (mam odpalony lokalny serwer WebServ) wywołania pliku index.php otrzymuję komunikat "System nie może znaleźć określonej ścieżki".
Przy próbie wywołania pliku other.php o treści:
  1. <?php
  2. $content=file_get_contents("http://pl.uefa.com//uefaeuro//season=2012//matches//round=15171//match=2002131//index.html");
  3. $pocz = strpos($content, '<table class="pname noborder">');
  4. $content=substr($content, $pocz);
  5. $tab=explode('</table>' ,$content);
  6. $content=$tab[0];
  7. echo $content."</table>";
  8. ?>

pojawia się pobrana strona.
Jaki zrobiłem błąd w pierwszym skrypcie?
Dzięki za pomoc,
Jacek

Ten post edytował kecaj_s 7.06.2012, 20:58:44
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: 22.08.2025 - 09:52