Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: Pobieranie danych z innej strony
Forum PHP.pl > Forum > PHP
KamPL
Witam, ostatnio próbuję stworzyć skrypt, który próbuje pobrać dane z pewnego diva na stronie, jednak bez skutków. Chciałbym pobrać nazwę tytułu filmu, aby ten wyświetlił się na stronie. Próbowałem przez cURL, oraz przez normalny skrypt php, lecz nie działa. Chciałbym pobrać tytuł filmu z div'u "filmTitle" z tej strony: Klik . Proszę o jakieś wskazówki.

Pozdrawiam
b4rt3kk
Cytat(KamPL @ 2.12.2012, 19:36:28 ) *
Witam, ostatnio próbuję stworzyć skrypt, który próbuje pobrać dane z pewnego diva na stronie, jednak bez skutków. Chciałbym pobrać nazwę tytułu filmu, aby ten wyświetlił się na stronie. Próbowałem przez cURL, oraz przez normalny skrypt php, lecz nie działa. Chciałbym pobrać tytuł filmu z div'u "filmTitle" z tej strony: Klik . Proszę o jakieś wskazówki.

Pozdrawiam


A czy czasem nie bierzesz za to 30 zł od pewnej osoby?
KamPL
yyyyyyyyyyyyyy ?
b4rt3kk
Cytat(KamPL @ 2.12.2012, 19:41:37 ) *
yyyyyyyyyyyyyy ?


A bo była swego czasu oferta tutaj na forum, by stworzyć coś podobnego. I jak się dowiedziałem od zleceniodawcy ktoś się zgodził zrobić taki skrypt za 30 zł. Co do pytania z 1 postu - pobierz dane cURLem, następnie zastosuj odpowiednie wyrażenie regularne.
KamPL
aha, spoko. Tylko z tym wyrażeniem regularnym mam problem. Mógłbyś podać jakiś przykład pobrania z div'u ? Bo próbowałem i żadnym sposobem nie wyświetlało się.
b4rt3kk
Chociażby takie wyrażenie:

  1. $pattern = '/<div id=filmTitle class=hide>(.*)</div>/';


Nazwa filmu występuje w wielu miejscach.
KamPL
A żeby wyświetliło jeden wynik trzeba wykonać to w pętli czy jest inny sposób ?


Pozdrawiam
b4rt3kk
Po co w pętli? cURL-em pobierasz całą stronę, stosujesz wyrażenie regularne i masz już wynik w postaci tytułu. Mówiłem tylko że tytuł występuje wielokrotnie, więc możesz zastosować różne wyrażenia regularne, ale że ten akurat div posiada id (co oznacza, że może być tylko jeden taki), tak więc otrzymasz tylko jeden zgodny wynik do wzorca.

  1. $pattern = '/<div id=filmTitle class=hide>(.*)<\/div>/';
KamPL
Okej, dziękuję za pomoc.


Pozdrawiam wink.gif

Przepraszam jeszcze ale, gdy mam taki kod:
  1. <?php
  2. $url = "http://www.filmweb.pl/film/Madagaskar+3-2012-494685";
  3. $ch = curl_init(); // inicjalizacja curla
  4. curl_setopt($ch, CURLOPT_URL,$url); // ustawienie urla
  5. curl_setopt($ch, CURLOPT_RETURNTRANSFER,1); // zwróć w postaci zmiennej
  6. curl_setopt($ch, CURLOPT_TIMEOUT, 3); // czas oczekiwania
  7. $result = curl_exec($ch); // wykonanie skryptu
  8. curl_close($ch);
  9.  
  10. preg_match('/<div id=filmTitle class=hide>(.*)<\/div>/', $result, $wyjscie);
  11. echo $wyjscie;
  12. ?>


wyskakuję mi "Array", próbowałem też przez print_r ale to daje to samo, proszę o pomoc z góry dzięki.

Pozdrawiam
Spawnm
Aby pobrać info o filmie musisz obejść stronę startową z reklamą, a tego nie robisz.



Cytat
A bo była swego czasu oferta tutaj na forum, by stworzyć coś podobnego. I jak się dowiedziałem od zleceniodawcy ktoś się zgodził zrobić taki skrypt za 30 zł.

Hehehe, to już wiem czemu moja propozycja ceny XXX nie spotkała się z zainteresowaniem haha.gif
KamPL
A jak zrobić to obejście ?
Spawnm
Nie pomagamy obchodzić zabezpieczeń wink.gif
KamPL
  1. <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
  2. <html xmlns="http://www.w3.org/1999/xhtml">
  3. <head>
  4. <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
  5.  
  6. </head>
  7.  
  8. <body>
  9. <form method="post">
  10. <input type="text" name="url" />
  11. <input type="submit" value="submit" />
  12. </form>
  13. <?php
  14.  
  15. $strona = $_POST['url'];
  16. if($_POST['url']!="") {
  17. $useragent="Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US; rv:1.8.1.1) Gecko/20061204 Firefox/2.0.0.1";
  18.  
  19.  
  20.  
  21. $rC = curl_init();
  22. curl_setopt($rC, CURLOPT_HEADER, 1);
  23. curl_setopt($rC, CURLOPT_COOKIEFILE, 'cookies.txt');
  24. curl_setopt($rC, CURLOPT_COOKIEJAR, 'cookiesjar.txt');
  25. curl_setopt($rC, CURLOPT_RETURNTRANSFER, 1);
  26. curl_setopt($rC, CURLOPT_VERBOSE, 0);
  27. curl_setopt($rC, CURLOPT_REFERER, 'www.google.pl');
  28. curl_setopt($rC, CURLOPT_URL, "$strona");
  29.  
  30. $wejscie = curl_exec($rC);
  31. curl_setopt($rC, CURLOPT_REFERER, $strona);
  32. $wejscie = curl_exec($rC);
  33.  
  34. curl_close($rC);
  35. preg_match('/<div id=filmTitle class=hide>(.*)<\/div>/', $wejscie, $wyjscie);
  36.  
  37. echo $wyjscie;
  38.  
  39. }
  40.  
  41. ?>
  42. </body>
  43. </html>


Znalazłem taki kod, ale dalej mam ten sam problem, proszę o pomoc.

Pozdrawiam
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.