Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: Skrypt pobierający treść z innej strony
Forum PHP.pl > Forum > PHP
nussy
Witam. Proszę Was o kod, a mianowicie chcę aby po wejściu na moją stronę wyświetliło mi w określonym przeze mnie miejscu treść tabeli z innej strony.

Konkretnie: http://clan.z8games.com/clanstat_cf.aspx?guildid=100142 to jest strona ze statystykami pewnego klanu. Chcę aby z tych statystyk pobierało ranking i wyświetlało go na mojej stronie po wejściu na nią.

Szukałem w google, pierwsze 3 strony i nic nie znalazłem. Owszem było dużo przykładów ale dla mnie kompletnie zielonego człowieczka to jest czarna magia. Orientuję się tylko, że można wyciągać po ID. Id tej tabelki to div_clanrank.

Z góry dziękuję za pomoc.
webdice
cURL (lub samo file_get_contents) i wyrażenia regularne (preg_match).
nussy
Cytat(nussy @ 25.07.2012, 22:00:19 ) *
Proszę Was o kod


Dziękuję za chęć pomocy. Jednak to mi nic nie mówi. Przyszedłem po pomoc do specjalistów. Dla Was napisanie takiego kodu to pewnie sprawa nawet nie 5 minut. Ja bym się musiał uczyć z 2 miesiące żeby to pojąć.
webdice
Jak się nie chcesz uczyć, tylko dostać gotowca, to od razu napisz temat w dziale Giełda ofert. Jeśli jednak chcesz żebyśmy Ci pomogli, to zacznij pisać i przyjdź jak będziesz miał problem z konkretną rzeczą.
binprogrammer
Jeżeli szukasz czegoś gotowego to może napisz lepiej tutaj Forum: Gotowe rozwiazania

Bo w tym dziale pomaga się w tworzeniu skryptów, a nie tworzy się skrypty za kogoś wink.gif
webdice
Cytat(binprogrammer @ 25.07.2012, 22:12:02 ) *
(...) Bo w tym dziale pomaga się w tworzeniu skryptów, a nie tworzy się skrypty za kogoś wink.gif


Nie tylko w tym dziale, ale na całym forum.
nussy
Aha, no okej. To powiedzmy, że sam chcę skleić kod. To mam już fragment który łączy mi się z tą stroną:

  1. <?php
  2. $hand = curl_init();
  3. curl_setopt($hand, CURLOPT_URL, 'http://clan.z8games.com/clanstat_cf.aspx?guildid=100142');
  4. curl_setopt($hand, CURLOPT_POST, 1);
  5. curl_setopt($hand, CURLOPT_POSTFIELDS, 'title=CURL&action=edit');
  6. curl_exec($hand);
  7. curl_close($hand);
  8. ?>


Sądzę, że teraz muszę wyciągnać po ID treść div'a. Tą treśc wsadzić do zmiennej i wyświetlić. Zgadza się?
webdice
  1. $content = curl_exec($hand);


Od tej chwili w zmiennej content masz kod pobranej strony. Teraz musisz użyć preg_match aby wyciągnąć interesujący Cie element. Przykładowo:

  1. preg_match( '#<div id="id">([^<]+)</div>#i', $content, $result );
  2.  
  3. print_r( $result );


Oczywiście wzór wyrażenia regularnego musisz dostosować do własnych potrzeb.
modern-web
Łatwiej byłoby zrobić to całkowicie w PHP, no ale jak kto woli. Jeśli obawiasz się, że kilka linijek kodu zajmie Ci te 2 miesiące, to zanim pojmiesz zasadę działania cURL-a minie drugie tyle... Jak mniemam jesteś zielony, a temat powinien trafić do Przedszkola.

Pozdrawiam!
php11
Witam serdecznie,

Korzystam z kodu powyżej i dostaję komunikat: 403: Access Forbidden DoS Protection.
To się da jakość obejść

webdice
Prawdopodobnie kwestia USER_AGENT.
php11
Dzięki za odpowiedź.

Poczytałem, poszukałem, ale nic mi to nie pomogło...
Naprowadzisz mnie bardziej szczegółowo?
webdice
  1. curl_setopt( $ch, CURLOPT_USERAGENT, 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_8_2) AppleWebKit/536.26.14 (KHTML, like Gecko) Version/6.0.1 Safari/536.26.14' );


Oczywiście możesz wstawić USER AGENT dowolnej przeglądarki.
To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę kliknij tutaj.
Invision Power Board © 2001-2025 Invision Power Services, Inc.