Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> [PHP]Popranie danych z innej strony
Nico~
post
Post #1





Grupa: Zarejestrowani
Postów: 82
Pomógł: 0
Dołączył: 19.01.2013

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


Witam,

Chciałbym z tej strony http://playarena.pl/umbrella?city_id=1#bra...omming_meetings pobrać i wyświetlić 5 nadchodzących meczów na mojej stronie.
Jestem kompletnie zielony z php, a ta funkcja jest mi bardzo potrzebna. Chciałbym się dowiedzieć jak to zrobić i przy okazji nauczyć, także proszę o wyrozumiałość. Przeszukałem wiele stron, ale nigdzie nie znalazłem rozwiązania na swój problem.

Proszę o pomoc (IMG:style_emoticons/default/smile.gif)
Go to the top of the page
+Quote Post
4 Stron V   1 2 3 > »   
Start new topic
Odpowiedzi (1 - 19)
fate
post
Post #2





Grupa: Zarejestrowani
Postów: 824
Pomógł: 106
Dołączył: 14.03.2012
Skąd: Warszawa

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


Mam nadzieje ze HTMl ogarniasz:
http://nimishprabhu.com/top-10-best-usage-...dom-parser.html
Miłej nauki, jak grzyby po deszczu wszscy o to samo
Go to the top of the page
+Quote Post
Nico~
post
Post #3





Grupa: Zarejestrowani
Postów: 82
Pomógł: 0
Dołączył: 19.01.2013

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


Udało pobrać mi się tylko <title> czyli tytuł, ale zawartości tam gdzie znajduje się ta lista meczów się jakoś nie umiem. Ktoś pomoże i wytłumaczy mi to ?
Go to the top of the page
+Quote Post
fate
post
Post #4





Grupa: Zarejestrowani
Postów: 824
Pomógł: 106
Dołączył: 14.03.2012
Skąd: Warszawa

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


Jak tak zerknąlem szukasz 5 piewrwszych divów:
div class="col-xs-8 meetTeamName"
uzywaj firebuga lub polecenia zbadaj zeby sie odnaleźć co potrzebujesz
tu wydaje mi sie masz odpowiedz jak to zrobic;
stackoverflow.com/questions/15761115/find-div-with-class-using-php-simple-html-dom-parser#answer-15761167
Go to the top of the page
+Quote Post
Nico~
post
Post #5





Grupa: Zarejestrowani
Postów: 82
Pomógł: 0
Dołączył: 19.01.2013

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


Czyli 5 pierwszych div'ów to:

1. div class="col-xs-8 meetTeamName"
2. div class="text-right"
3. div class="text-center"
4. <div> </div>
5. div class="col-xs-3"

Dobrze myślę czy się mylę?
Go to the top of the page
+Quote Post
SmokAnalog
post
Post #6





Grupa: Zarejestrowani
Postów: 1 707
Pomógł: 266
Dołączył: 3.07.2012
Skąd: Poznań

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


Fate, myślisz że osoba "kompletnie zielona z php" poradzi sobie z parserem DOM?
Go to the top of the page
+Quote Post
Nico~
post
Post #7





Grupa: Zarejestrowani
Postów: 82
Pomógł: 0
Dołączył: 19.01.2013

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


Mniej więcej ogarnąłem to i testowo sprawdziłem na pierwszej lepszej tabelce z kursami walut i mi ją pięknie pobrało i wyświetliło.
Teraz próbuję pobrać tabelę ligową stąd: http://playarena.pl/umbrella?city_id=1#lea...asonTable_13947, no i niestety kicha. Próbuję pobrać i wyświetlić wszystkie linki (znacznik: <a>) i niestety wyświetla mi tylko link do: "zaloguj się, zarejestruj, itd" a powinno przecież linki do drużyn także pobierać...
Czy możliwe jest że ta tabela jest jakoś zabezpieczona? Jeśli tak, to da się to jakoś obejść? BARDZO MNIE TO CIEKAWI
Go to the top of the page
+Quote Post
fate
post
Post #8





Grupa: Zarejestrowani
Postów: 824
Pomógł: 106
Dołączył: 14.03.2012
Skąd: Warszawa

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


no i widzisz Smoku jak Nico szybko się uczy.
Problemem jest to, że pobieramy dane z "niewłaściwego" linka czyli jest to jak to nazwałeś jest zabezpieczone

Content jest doczytywany z oddzielnych plików za pomocą AJAX jeżeli cos Ci to mowi w skrocie "bez przeladowania strony"
Gdbyś "odgadł" link do tych właśnie doczytywanych plików to byś sobie poradził.

Pewnie z cURL się da ale akurat nie robiłem nigdy tego, masz tu zalążek może błądząc po pokrewnych do czegoś dojdziesz
http://forums.phpfreaks.com/topic/285888-a...tml-dom-parser/
http://stackoverflow.com/questions/3928228...l-get-ajax-data
http://www.goldenline.pl/grupy/Komputery_I...problem,788950/


btw z ta lista 5 nadchodzacych meczy mialem na mysli pobranie zawartosci 5 divow od poczatku ale wszystkich z jednakowa klasa:
div class="col-xs-8 meetTeamName"
a nie ogolnie 5 1szych
Go to the top of the page
+Quote Post
tzm
post
Post #9





Grupa: Zarejestrowani
Postów: 675
Pomógł: 58
Dołączył: 17.12.2013

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


Cytat(SmokAnalog @ 31.07.2014, 22:36:15 ) *
Fate, myślisz że osoba "kompletnie zielona z php" poradzi sobie z parserem DOM?



No a co w tym takiego? tydzień od tego jak się zacząłem uczyć php szef mi kazał napisać parser strony który pobierał 4000 produktów ze sklepu, na różnych stronach, kategoriach, zdjęcia, opisy, właściwości, dostępność magazynową... co prawda miesiąc to pisałem ale wszystko jest dla ludzi.

Nico~ na pierwszy rzut oka widzę że to Cie powinno najbardziej interesować:

  1. class="meetItem row meetUpcomming"


Potem to już explode i tablice i foreach. Dasz radę a jak nie to po pracy siądę (IMG:style_emoticons/default/smile.gif)
Go to the top of the page
+Quote Post
Nico~
post
Post #10





Grupa: Zarejestrowani
Postów: 82
Pomógł: 0
Dołączył: 19.01.2013

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


Jest! Udało mi się dostać do pliku, gdzie są przechowywane mecze. (IMG:style_emoticons/default/smile.gif) Oto i odnośnik do niego: http://playarena.pl/branch/ajaxMeetings/branch_id/28
Jestem na dobrej drodze testowałem znacznik <a> i wszystko śmiga jak należy. Ale wracając do rzeczywistości to mam koda taki:

  1. <?php
  2. include_once('simple_html_dom.php');
  3.  
  4. $html = file_get_html('http://playarena.pl/branch/ajaxMeetings/branch_id/28');
  5.  
  6. // Find all images
  7. foreach($html->find('div.meetItem row meetUpcomming') as $element)
  8. echo $element;
  9. ?>


No i dalej nie pobiera mi tych spotkań, co teraz? (IMG:style_emoticons/default/sad.gif)
Go to the top of the page
+Quote Post
SmokAnalog
post
Post #11





Grupa: Zarejestrowani
Postów: 1 707
Pomógł: 266
Dołączył: 3.07.2012
Skąd: Poznań

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


W linii 7. masz nieprawidłowy selektor. taki zapis HTML:

  1. <div class="meetItem row meetUpcomming">


oznacza, że div ma 3 klasy: meetItem, row oraz meetupComming. Selektor CSS do wyboru elementu o kilku klasach wygląda tak:

  1. div.meetItem.row.meetUpcomming


Zauważ brak spacji. Spacja oznacza "element wewnątrz". Pytanie czy musisz identyfikować ten div po wszystkich klasach, pewnie wystarczy po jednej. Jaki wynik dokładnie Cię interesuje?
Go to the top of the page
+Quote Post
Nico~
post
Post #12





Grupa: Zarejestrowani
Postów: 82
Pomógł: 0
Dołączył: 19.01.2013

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


Poprawiłem tą linijkę, jednak dalej mi wyświetla pustą stronę, nie wiadomo czemu.
Przepraszam, ale za bardzo rozumiem twojego pytania.


Ten post edytował Nico~ 1.08.2014, 10:30:51
Go to the top of the page
+Quote Post
SmokAnalog
post
Post #13





Grupa: Zarejestrowani
Postów: 1 707
Pomógł: 266
Dołączył: 3.07.2012
Skąd: Poznań

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


Co ma być wynikiem ostatecznym?
Go to the top of the page
+Quote Post
Nico~
post
Post #14





Grupa: Zarejestrowani
Postów: 82
Pomógł: 0
Dołączył: 19.01.2013

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


Wynikiem ostatecznym mają być tylko najbliższe mecze.

Ale sprawdziłem to
  1. div.meetItem
i mi wyskoczyły te mecze wszystkie mecze, tylko że rozegrane + nadchodzące, a chciałbym same nadchodzące.

Ten post edytował Nico~ 1.08.2014, 10:42:58
Go to the top of the page
+Quote Post
tzm
post
Post #15





Grupa: Zarejestrowani
Postów: 675
Pomógł: 58
Dołączył: 17.12.2013

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


meetUpcomming == spotkaniaNadchodzące

angielski się kłania do pasa
Go to the top of the page
+Quote Post
Nico~
post
Post #16





Grupa: Zarejestrowani
Postów: 82
Pomógł: 0
Dołączył: 19.01.2013

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


mitorski, właśnie na to wpadłem (IMG:style_emoticons/default/tongue.gif)

Dobra, wszystko pięknie wpisałem klasę
  1. div.meetUpcomming
i mi wyświetla to co chciałem! (IMG:style_emoticons/default/smile.gif)
Teraz dodatkowe pytanie, jak to wrzucić w tabelkę? I wyrzucić "Do meczu pozostało:"
Bo jak na razie jest w takiej o to formie:
Kod
01.08.2014
Fc Kleczków
vs
Royal Blue
Do meczu pozostało:
01.08.2014
Spartakus Wrocław
vs
The Invincbles
Do meczu pozostało:
01.08.2014
Runner's Football Team
vs
Dywizjon 71
Do meczu pozostało:
Go to the top of the page
+Quote Post
fate
post
Post #17





Grupa: Zarejestrowani
Postów: 824
Pomógł: 106
Dołączył: 14.03.2012
Skąd: Warszawa

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


Nico musisz mi powiedzieć jak "odgadles" ten link, co prawda to nie było moje zadanie ale szybciutko się poddałem
Cytat(Nico~ @ 1.08.2014, 02:21:21 ) *
BARDZO MNIE TO CIEKAWI

Go to the top of the page
+Quote Post
SmokAnalog
post
Post #18





Grupa: Zarejestrowani
Postów: 1 707
Pomógł: 266
Dołączył: 3.07.2012
Skąd: Poznań

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


Tak jak Mitorski zaproponował:
  1. foreach ($html->find('.meetUpcomming') as $element) {
Go to the top of the page
+Quote Post
tzm
post
Post #19





Grupa: Zarejestrowani
Postów: 675
Pomógł: 58
Dołączył: 17.12.2013

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


Daj skrypta to Ci to poskładam w tablice i ogarnę tabele jakąś
Go to the top of the page
+Quote Post
fate
post
Post #20





Grupa: Zarejestrowani
Postów: 824
Pomógł: 106
Dołączył: 14.03.2012
Skąd: Warszawa

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


Nie musi być tabela możesz to poprostu ostylować na poczatek spróbuj
.row div{diplspay: inline; border: 1px solid #aaa}
na hama moglbys przekleic CSSa z ich strony glownej to bys mial idento (IMG:style_emoticons/default/ohno-smiley.gif)

patrz jakie tam masz już użyte klasy i je wykorzystaj, chyba że wolisz wszystko rozbić a potem wyświetlać w rzeczywistej tabeli

mitorski jakie poświęcenie ^^ btw

Ten post edytował fate 1.08.2014, 11:02:02
Go to the top of the page
+Quote Post

4 Stron V   1 2 3 > » 
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: 14.10.2025 - 02:57