Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> [JavaScript][XML][PHP]Pobieranie danych ze strony
dudi1261
post 21.06.2010, 16:07:18
Post #1





Grupa: Zarejestrowani
Postów: 58
Pomógł: 0
Dołączył: 25.07.2008

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


Witam,
Potrzebuje skrypt do wyciagania pewnych danych z pewnej strony snitch.gif Jedyna droga jaka widze to pobieranie danych podlaczajac sie pod strone i wyciagajac informacje z <div> o okreslonych id="" i wyswietlanie na mojej stronie. Da sie takie cos zrobic? jesli nie ta metoda to w jaki inny sposob?
Pozdrawiam
Go to the top of the page
+Quote Post
lepmajster
post 21.06.2010, 16:10:54
Post #2





Grupa: Zarejestrowani
Postów: 129
Pomógł: 24
Dołączył: 21.05.2010

Ostrzeżenie: (30%)
XX---


Cytat(dudi1261 @ 21.06.2010, 17:07:18 ) *
Witam,
Potrzebuje skrypt do wyciagania pewnych danych z pewnej strony snitch.gif Jedyna droga jaka widze to pobieranie danych podlaczajac sie pod strone i wyciagajac informacje z <div> o okreslonych id="" i wyswietlanie na mojej stronie. Da sie takie cos zrobic? jesli nie ta metoda to w jaki inny sposob?
Pozdrawiam

  1. $zrodlo_strony = file_get_contents('strona.pl/index.html');
  2. //ewentualnie curl, jesli dochodzi do tego potrzeba zapytan POST
  3.  
  4. preg_match_all('[<div id="abc">(.+?)<\/div>]', $zrodlo_strony, $wynik); //do wyciagania ze zrodla czego potrzebujesz


Ten post edytował lepmajster 21.06.2010, 16:21:49


--------------------
Naciśnij POMÓGŁ, jeśli mój post był pomocny :)
Go to the top of the page
+Quote Post
yevaud
post 21.06.2010, 16:13:34
Post #3





Grupa: Zarejestrowani
Postów: 471
Pomógł: 89
Dołączył: 29.07.2008
Skąd: Warszawa

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


zamiast preg mozesz uzyc tez http://code.google.com/p/phpquery/
Go to the top of the page
+Quote Post
dudi1261
post 21.06.2010, 19:06:22
Post #4





Grupa: Zarejestrowani
Postów: 58
Pomógł: 0
Dołączył: 25.07.2008

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


zrobilem:

Kod
<?php
$zrodlo_strony = file_get_contents('http://www.4esports.pl/index.html');
preg_match_all('[<span id="start_text">(.+?)<\/span>]', $zrodlo_strony, $wynik);
echo $wynik;
?>


zamiast wyswietlac jakas tresc wyswietla mi:
Cytat
Array


adres skryptu:
http://dudix.futureproject.xaa.pl/dane.php

Cos zle zrobilem?


// yevaud
musze to zainstalowac na serwerze www moim czy na tamtej stronie z ktorej pobieram dane tez musi byc?
Go to the top of the page
+Quote Post
lepmajster
post 21.06.2010, 19:39:02
Post #5





Grupa: Zarejestrowani
Postów: 129
Pomógł: 24
Dołączył: 21.05.2010

Ostrzeżenie: (30%)
XX---


Cytat(dudi1261 @ 21.06.2010, 20:06:22 ) *
zrobilem:

Kod
<?php
$zrodlo_strony = file_get_contents('http://www.4esports.pl/index.html');
preg_match_all('[<span id="start_text">(.+?)<\/span>]', $zrodlo_strony, $wynik);
echo $wynik;
?>


zamiast wyswietlac jakas tresc wyswietla mi:


adres skryptu:
http://dudix.futureproject.xaa.pl/dane.php

Cos zle zrobilem?


// yevaud
musze to zainstalowac na serwerze www moim czy na tamtej stronie z ktorej pobieram dane tez musi byc?

Nic poprostu zwrocony wynik to array, a wiesz co to array?
Musisz odpowiednio sie do niej dobrac np. $wynik[0][1];
Najlepiej zrob tak:
  1. print_r($wynik);

i zobaczysz gdzie masz interesujace cie dane.


--------------------
Naciśnij POMÓGŁ, jeśli mój post był pomocny :)
Go to the top of the page
+Quote Post
dudi1261
post 21.06.2010, 19:57:13
Post #6





Grupa: Zarejestrowani
Postów: 58
Pomógł: 0
Dołączył: 25.07.2008

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


wyswietlilo:

Kod
Array ( [0] => Array ( ) [1] => Array ( ) )


Wczesniej sie z tym Array nie spotkalem. Wiem jedynie, ze to jakas tablica ;> Jak z tego wyciagnac to co chcialem z tamtej strony?
Go to the top of the page
+Quote Post
lepmajster
post 21.06.2010, 20:25:22
Post #7





Grupa: Zarejestrowani
Postów: 129
Pomógł: 24
Dołączył: 21.05.2010

Ostrzeżenie: (30%)
XX---


Czyli zwraca pusta tablice, czemu?
Musiales wpisac zle dane, tzn przejrzyj zrodlo w przegladarce tej strony i wyszukaj tego czego potrzebujesz.
Skopiuj dokladnie miedzy ktorymi tagami wystepuje tekst, ktorego szukasz i wstaw do preg_match.
Zrobilem sobie na probe na localhost taki skrypt, wedlug tego co ci napisalem (myslalem ze moze zly wzorzec zrobilem), ale u mnie dziala.
W jednym pliku mam:
  1. <!-- plik strona.html -->
  2. <div id="abc">Dane do pobrania</div>

a w drugim
  1. $zrodlo_strony = file_get_contents('strona.html');
  2. preg_match_all('[<div id="abc">(.+?)<\/div>]', $zrodlo_strony, $wynik);
  3. print_r($wynik);

i wyswietla mi:
Cytat
Array ( [0] => Array ( [0] =>
Dane do pobrania
) [1] => Array ( [0] => Dane do pobrania ) )

czyli OK.
Sprawdz jeszcze co ci zwraca file_get_contents:
  1. echo $zrodlo_strony;

Po file_get_contents i najlepiej wstaw to echo miedzy <textarea></textarea>, zebys widzial caly kod.

Ten post edytował lepmajster 21.06.2010, 20:29:52


--------------------
Naciśnij POMÓGŁ, jeśli mój post był pomocny :)
Go to the top of the page
+Quote Post
dudi1261
post 21.06.2010, 21:44:05
Post #8





Grupa: Zarejestrowani
Postów: 58
Pomógł: 0
Dołączył: 25.07.2008

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


Twoje dziala smile.gif
zaraz sprawdze co u mnie jest zle smile.gif Dzieki

@1:
Jak wyswietlic ta tablice bez tych napisow array?

@2:
zly byl link:
$zrodlo_strony = file_get_contents('http://dudix.futureproject.xaa.pl/strona.html'); - nie dziala
$zrodlo_strony = file_get_contents('strona.html'); - dziala

oznacza to samo a jednak nie dziala. masz jakis pomysl jak to inaczej zrobic?

Ten post edytował dudi1261 21.06.2010, 21:50:15
Go to the top of the page
+Quote Post
lepmajster
post 21.06.2010, 22:00:46
Post #9





Grupa: Zarejestrowani
Postów: 129
Pomógł: 24
Dołączył: 21.05.2010

Ostrzeżenie: (30%)
XX---


Cytat(dudi1261 @ 21.06.2010, 22:44:05 ) *
Twoje dziala smile.gif
zaraz sprawdze co u mnie jest zle smile.gif Dzieki

@1:
Jak wyswietlic ta tablice bez tych napisow array?

@2:
zly byl link:
$zrodlo_strony = file_get_contents('http://dudix.futureproject.xaa.pl/strona.html'); - nie dziala
$zrodlo_strony = file_get_contents('strona.html'); - dziala

oznacza to samo a jednak nie dziala. masz jakis pomysl jak to inaczej zrobic?

Byc moze masz wylaczona ta funkcje na zewnetrzne serwery?
Moze zle wpisales adres, sprawdz go w przegladarce.
Trudno cos powiedziec, bo u mnie dziala nawet na zewnetrznej stronie.

Nie dziala tzn. ze echo $zrodlo_strony nic nie wyswietla?

EDIT: Co do pytania o array, to masz tam w [] wyswietlone klucze, w ktorych sa dane, np u mnie dane sa w:
  1. $wynik[0][0];
  2. // oraz w (z tego skorzystaj)
  3. $wynik[1][0];


Ten post edytował lepmajster 21.06.2010, 22:02:58


--------------------
Naciśnij POMÓGŁ, jeśli mój post był pomocny :)
Go to the top of the page
+Quote Post
dudi1261
post 22.06.2010, 06:25:21
Post #10





Grupa: Zarejestrowani
Postów: 58
Pomógł: 0
Dołączył: 25.07.2008

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


Wyglada na to, ze mam wylaczona obsluge na adresy http://. Wrzucilem skrypt na moj drugi serwer www i smiga, ze az milo smile.gif
Dzieki



@ Kolejne bledy :<

Dziala tylko jesli kod w strona.html jest w jednej lini, co jest bardzo dziwne.


Ten post edytował dudi1261 22.06.2010, 06:37:29
Go to the top of the page
+Quote Post
yevaud
post 22.06.2010, 06:58:58
Post #11





Grupa: Zarejestrowani
Postów: 471
Pomógł: 89
Dołączył: 29.07.2008
Skąd: Warszawa

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


Pattern Modifiers
i - Case Insensitive
m - Multiline mode - ^ and $ match start and end of lines
s - Dotall - . class includes newline
x - Extended– comments and whitespace
e - preg_replace only – enables evaluation of replacement as PHP code
S - Extra analysis of pattern
U - Pattern is ungreedy
u - Pattern is treated as UTF-8

wydaje mi sie ze powinienes dorzucic /ms
Go to the top of the page
+Quote Post
dudi1261
post 22.06.2010, 08:47:01
Post #12





Grupa: Zarejestrowani
Postów: 58
Pomógł: 0
Dołączył: 25.07.2008

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


Szukalem w manualu i wszedzie gdzie dorzucic /ms ;d nigdzie o tym nie ma? o.O
Go to the top of the page
+Quote Post
lepmajster
post 22.06.2010, 11:12:48
Post #13





Grupa: Zarejestrowani
Postów: 129
Pomógł: 24
Dołączył: 21.05.2010

Ostrzeżenie: (30%)
XX---


Bo szukasz tam gdzie nie trzeba, tzn. szukaj w wyrazeniach regularnych, bo to:
Cytat
[<div id="abc">(.+?)<\/div>]ms

to wyrazenie regularne i to jedno z latwiejszych smile.gif

Zastosuj ten wzorzec co zacytowalem i powinno byc OK.
A tu masz lekture, dot. wyrazen regularnych w PHP - przyda ci sie w przyszlosci http://pl.wikibooks.org/wiki/PHP/Podstawy_...%84_regularnych
Ciezki klimat, sam sie tego ucze...

OFC. Podziekowania naleza sie yevaud, bo on wypatrzyl blad winksmiley.jpg

Ten post edytował lepmajster 22.06.2010, 11:28:17


--------------------
Naciśnij POMÓGŁ, jeśli mój post był pomocny :)
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 Wersja Lo-Fi Aktualny czas: 19.04.2024 - 04:35