Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> [PHP][cURL] Omijanie raklamy
botnaizi
post
Post #1





Grupa: Zarejestrowani
Postów: 72
Pomógł: 0
Dołączył: 8.12.2009

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


Witam.

Zastanawiam się jak ominąć reklamy które występują przed otwarciem faktycznej strony. Chodzi mi o wyciągnięcie poszczególnych informacji z filmweb'u tylko , że pobierając stronę tym skryptem wyświetla mi reklamy.

  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, 0);
  23. curl_setopt($rC, CURLOPT_RETURNTRANSFER, 1);
  24. curl_setopt($rC, CURLOPT_VERBOSE, 0);
  25. curl_setopt($ch, CURLOPT_USERAGENT, $useragent);
  26. curl_setopt($rC, CURLOPT_REFERER, 'www.google.pl');
  27. curl_setopt($rC, CURLOPT_URL, "$strona");
  28.  
  29. $wejscie = curl_exec($rC);
  30.  
  31. curl_close($rC);
  32. preg_match('/<span class="center">(.+?)<\/center>/ism', $wejscie, $wyjscie);
  33.  
  34. echo $wejscie;
  35.  
  36. }
  37.  
  38. ?>
  39. </body>
  40. </html>



Jak nakazać skryptowi aby wszedł w link "Przejdź do filmweb" ?
Pojęcie o cURL'u mam znikome i raczej sam na to nie wpadnę smile.gif

Pozdrawiam
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi (1 - 10)
wookieb
post
Post #2





Grupa: Moderatorzy
Postów: 8 989
Pomógł: 1550
Dołączył: 8.08.2008
Skąd: Słupsk/Gdańsk




Sprawdź jaki kod ma reklama i znajdź kluczowe tagi.
Poza tym po co kopiujesz treść z filmwebu?


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





Grupa: Zarejestrowani
Postów: 72
Pomógł: 0
Dołączył: 8.12.2009

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


Relama jest jakby oddzielną stroną, trzeba kliknąć "Przejdź do filmwebu" aby przeniosło na stronę o którą mi chodzi. Ale jak to zrobić ? ;] Gdyby było to o co mi chodzi ukryte pod reklamą nie byłoby problemu bo odfiltrowałbym sobie to co potrzebuję tak samo link ale nie wiem jak przejść na daną stronę. Wchodząc z komputera normalnie mi wyświetla zaś ze skryptu wyświetla odrazu i cały czas reklamę. Jak można byłoby to ominąć ?


Pozdrawiam smile.gif
Go to the top of the page
+Quote Post
Pilsener
post
Post #4





Grupa: Zarejestrowani
Postów: 1 590
Pomógł: 185
Dołączył: 19.04.2006
Skąd: Gdańsk

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


Cytat
aby przeniosło na stronę o którą mi chodzi
- to dlaczego od razu nie pobierzesz tej strony?
Go to the top of the page
+Quote Post
Berg
post
Post #5





Grupa: Zarejestrowani
Postów: 180
Pomógł: 37
Dołączył: 1.05.2008
Skąd: Białystok

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


Reklama na Filmwebie opiera się pewnie na sesji, sprawdzają kiedy ostatni raz odwiedzałeś serwis i w razie czego wyświetlają reklamę. W Twoim skrypcie nie widzę włączonej obsługi ciasteczek więc każde wczytanie strony liczone jest przez FW jako nowy użytkownik dla którego trzeba wyświetlić reklamę. Dodaj obsługę ciastek (znajdziesz to w pierwszym lepszym tutorialu o curl, z tego co pamiętam jest też o tym cały osobny tutorial na php.pl) i przy wejściu wykrywaj czy na stronie wyświetlany jest napis "Przejdź do filmweb" - jeśli tak to wczytaj stronę ponownie. Powinno śmigać winksmiley.jpg

@Pilsener
Na FW reklama znajduje się pod tym samym adresem co żądana strona. Po prostu zamiast docelowej strony wyświetlają reklamę smile.gif

Ten post edytował Berg 1.09.2010, 14:26:13
Go to the top of the page
+Quote Post
botnaizi
post
Post #6





Grupa: Zarejestrowani
Postów: 72
Pomógł: 0
Dołączył: 8.12.2009

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


Tak zerkałem tutaj : http://wortal.php.pl/wortal/artykuly/php/b...ol_http/ciastka smile.gif Przerobiłem skrypt do tego :
  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($ch, CURLOPT_USERAGENT, $useragent);
  28. curl_setopt($rC, CURLOPT_REFERER, 'www.google.pl');
  29. curl_setopt($rC, CURLOPT_URL, "$strona");
  30.  
  31. $wejscie = curl_exec($rC);
  32.  
  33. curl_close($rC);
  34. preg_match('/<span class="center">(.+?)<\/center>/ism', $wejscie, $wyjscie);
  35.  
  36. echo $wejscie;
  37.  
  38. }
  39.  
  40. ?>
  41. </body>
  42. </html>


Dodałem pliki cookies.txt i cookiesjar.txt i nadałem im chmod'y 777 Ale i tak nie osiąga to efektu.
Może ktoś ma inne pomysły jak to zrobić ?

Ten post edytował botnaizi 1.09.2010, 14:33:51
Go to the top of the page
+Quote Post
Berg
post
Post #7





Grupa: Zarejestrowani
Postów: 180
Pomógł: 37
Dołączył: 1.05.2008
Skąd: Białystok

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


Wywołaj curl_exec 2 razy. Drugie wywołanie powinno zwrócić treść bez reklamy. Tylko pomiędzy 2 wywołaniami ustaw REFERER na stronę pod którą próbujesz wejść.
Go to the top of the page
+Quote Post
botnaizi
post
Post #8





Grupa: Zarejestrowani
Postów: 72
Pomógł: 0
Dołączył: 8.12.2009

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


@Berg: A mógłbyś przerobić trochę ten skrypt bo nie wiem jak to zrobić smile.gif Jak już pisałem nie bardzo w ogóle potrafię coś w cURL'u napisać smile.gif
Go to the top of the page
+Quote Post
Berg
post
Post #9





Grupa: Zarejestrowani
Postów: 180
Pomógł: 37
Dołączył: 1.05.2008
Skąd: Białystok

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


  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($ch, CURLOPT_USERAGENT, $useragent);
  28. curl_setopt($rC, CURLOPT_REFERER, 'www.google.pl');
  29. curl_setopt($rC, CURLOPT_URL, "$strona");
  30.  
  31. $wejscie = curl_exec($rC);
  32. curl_setopt($rC, CURLOPT_REFERER, $strona);
  33. $wejscie = curl_exec($rC);
  34.  
  35. curl_close($rC);
  36. preg_match('/<span class="center">(.+?)<\/center>/ism', $wejscie, $wyjscie);
  37.  
  38. echo $wejscie;
  39.  
  40. }
  41.  
  42. ?>
  43. </body>
  44. </html>
Go to the top of the page
+Quote Post
botnaizi
post
Post #10





Grupa: Zarejestrowani
Postów: 72
Pomógł: 0
Dołączył: 8.12.2009

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


Dzięki Berg, teraz śmiga.

Ale mam jeszcze jedno pytanie chciałem przefiltrować wszystkich aktorów, żebym otrzymał wynik od razu. Dodałem takie coś :
  1. preg_match('/<span property="v:starring">(.*)<\/span>/', $wejscie, $aktorzy_wynik);

Ale wyświetla tylko 1 postać z filmu. Kombinowałem z (.*) dawałem + lub ? ale i tak nie działa ( chyba dlatego że zatrzymuje się na pierwszym spotkanym wyrażeniu ale nie wiem smile.gif ). Co mam tam wpisać, aby wyszukało wszystkie ?

Pozdrawiam
Go to the top of the page
+Quote Post
sebekzosw
post
Post #11





Grupa: Zarejestrowani
Postów: 437
Pomógł: 42
Dołączył: 16.04.2007

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


preg_match_all()questionmark.gif
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: 21.08.2025 - 23:07