Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [php] curl i proxy
Forum PHP.pl > Forum > Przedszkole
jaszu
witam,
mam taki skrypt:
  1. <?php
  2. $ch_e=curl_init('http://wp.pl');
  3. curl_setopt($ch_e, CURLOPT_RETURNTRANSFER, 1);
  4. $strona_e=curl_exec($ch_e);
  5. echo $strona_e.' ok';
  6. echo '<br />';
  7. ?>

jak zrobić do tego, zeby wchodzil na w/w strone 100 razy i za kazdym razem laczyl sie z innym serwerem proxy, liste proxy mam w pliku: p.txt w postaci:
127.0.0.1:80
198.162.168.199:8080

z gory dziekuje,
pozdrawiam!
Krzasz
dopisz przed 4 linią:
  1. <?php
  2. curl_setopt ($ch_e, CURLPROXY_HTTP, 'http://host:port');
  3. ?>

gdzie http://host:port to adres proxy, pobierasz z pliku i wstawiasz jako ten parametr
jaszu
a jak pobrać ? ;>
$zmienna1="p.txt";
$zmienna2=fopen($zmienna1, "ab");

i co dalej ? snitch.gif questionmark.gif? niewiem
Krzasz
jeśli masz adres, w osobnych liniach to lepiej użyć file" title="Zobacz w manualu PHP" target="_manual

  1. <?php
  2. $file = file('p.txt');
  3. $ile = count($file)>100?100:count($file);
  4. for ($i = 0; $i < $ile; $i++) {
  5. $ch_e=curl_init('http://wp.pl');
  6. curl_setopt($ch_e, CURLOPT_RETURNTRANSFER, 1);
  7. curl_setopt($ch_e, CURLPROXY_HTTP, 'http://'.$file[$i]);
  8. $strona_e=curl_exec($ch_e);
  9. echo $strona_e.' ok';
  10. echo '<br />';
  11. }
  12. ?>


A teraz zrozum ten kod.
jaszu
ok, dzieki, juz bede wiedzial jak sie bawic z proxy,

a jak zrobic ze np; wchodzi na wp.pl i wchodzi na wszystkie <a href'y questionmark.gif tak poprostu buszuje sobie smile.gif
Krzasz
raz gotowy kod dostałeś, teraz szukaj, preg_replace, eregi_replace dużo o tym było
jaszu
to jeszcze raz zeby parzyscie było smile.gif
Krzasz
to 200zł, żeby parzysta kwota była smile.gif

Na tym forum masz się nauczyć, a nie szukać kogoś, kto zrobi coś za Ciebie za darmo - wszystko kosztuje smile.gif
jaszu
ucze sie, ale np luzakowi124 dalem smile.gif a prosilbym o ten kodzik, np z twojego co mi wczesniej dales sie duzo nauczylem, napisz na gg 6575888

pozdro!
Krzasz
Prywatne lekcje kosztują jeszcze drożej smile.gif

Ucz się sam, szukaj w wyszukiwarce, na pewno znajdziesz, powodzenia!
jaszu
niechce lekcji smile.gif napisz, proszę smile.gif

wykmilem cos takiego:
  1. <?php
  2. $file = file('p.txt');
  3. $ile = count($file)>100?100:count($file);
  4. for ($i = 0; $i < $ile; $i++) {
  5. $ch_e=curl_init('http://wp.pl');
  6. curl_setopt($ch_e, CURLOPT_RETURNTRANSFER, 1);
  7. curl_setopt($ch_e, CURLPROXY_HTTP, 'http://'.$file[$i]);
  8. $strona_e=curl_exec($ch_e);
  9. preg_match_all('/<.*?a.*?href=s*?['"](.+)['"].*?>.*?</.*?a.*?>/i', $strona_e, $matches);
  10. echo $strona_e.' ok';
  11. echo '<br />';
  12. }
  13. ?>

ale jak zrobic zeby wszedl w ten odnosnik?
Sylwin
Żeby wszedł biggrin.gif? Proste podepnij pod tren adresik co sparsowałeś curla i tyle smile.gif
jaszu
pomogłem ci, to ty teraz pomóż mi ^^ how to?
Sylwin
Ok napisałem cały skrypt smile.gif Dokładny komentarz pozwoli Ci zrozumieć jak to działa.

Kompletny kod:

Kod
<?php
//Adres na który mamy wejść
   $adres = "http://www.http://katalog.qlweb.one.pl/index.php";

// Plik z proxy
    $proxy = file('proxy.txt');

// Liczymy adresy proxy z pliku
    $ile = count($file);

// Tworzymy pętle (wejdziemy na stronę tyle razy ile jest adresów proxy w pliku)
for ($i = 0; $i < $proxy; $i++) {

// Wchodzimy na stronę z adresu proxy
    $curl=curl_init("$adres");
    curl_setopt($curl, CURLOPT_RETURNTRANSFER, 1);
    curl_setopt($curl, CURLOPT_TIMEOUT, 10);
    curl_setopt($curl, CURLPROXY_HTTP, "http://$proxy[$i]");
    $wynik=curl_exec($curl);

// Parsujemy linki znajdujące się na stronie
    preg_match_all('[href=\"(.+?)\"]is',$wynik,$kliklink);
    $link=$kliklink[1];

// Liczymy linki znajdujące się na stronie
    $ilelink=count($link);

// Losujemy link
    $jakilink=rand(1,$ilelink);

// Wchodzimy na wylosowany link z losowego adresu proxy
    $curllink=curl_init("$link[$jakilink]");
    curl_setopt($curllink, CURLOPT_RETURNTRANSFER, 1);
    curl_setopt($curllink, CURLOPT_TIMEOUT, 10);
    curl_setopt($curllink, CURLPROXY_HTTP, "http://$proxy[$i]");
    curl_exec($curllink);

echo"<br><b>Kliknięto w:</b> $link[$jakilink] <b>z proxy:</b> $proxy[$i]";  
}
?>


Jeśli umieszczasz gdzieś ten kod to musisz zawrzeć napis: Autorem skryptem jest Sylwin (prawa autorskie)
matiszon
Czy mozna ustawic zeby poczekal jakis tam czas na stronie zanim kliknie w nastepny link ?
Metaxy6798
Pytanie do użytkownika "Sylwin" odnośnie do jego skryptu
Mógłbyś pokazac co zrobic aby na stronie pokazywało sie okienko aby mozna wpisac adres refa.
Tak jak tu datki.wropro.pl Prosze o pomoc, bardzo to dla mnie wazne.
Znajomek
Pewnie, że można - korzystasz z funkcji sleep:

  1. sleep(10);


Gdzie 10 to ilość sekund jaką skrypt ma czekać. Pamiętaj o dopisaniu na początku skryptu funkcji set_time_limit:



Gdzie 0 oznacza, że skrypt będzie się wykonywał dopóki masz odpaloną przeglądarkę.

Czyli całość kodu będzie wyglądała tak:

  1. <?php
  2. // Ustawiamy limit czasu wykonywania na nieskończony
  3.  
  4. // Adres na który mamy wejść
  5. $adres = "http://www.http://katalog.qlweb.one.pl/index.php";
  6.  
  7. // Plik z proxy
  8. $proxy = file('proxy.txt');
  9.  
  10. // Liczymy adresy proxy z pliku
  11. $ile = count($file);
  12.  
  13. // Tworzymy pętle (wejdziemy na stronę tyle razy ile jest adresów proxy w pliku)
  14. for ($i = 0; $i < $proxy; $i++) {
  15.  
  16. // Wchodzimy na stronę z adresu proxy
  17. $curl=curl_init("$adres");
  18. curl_setopt($curl, CURLOPT_RETURNTRANSFER, 1);
  19. curl_setopt($curl, CURLOPT_TIMEOUT, 10);
  20. curl_setopt($curl, CURLPROXY_HTTP, "http://$proxy[$i]");
  21. $wynik=curl_exec($curl);
  22.  
  23. // Parsujemy linki znajdujące się na stronie
  24. preg_match_all('[href=\"(.+?)\"]is',$wynik,$kliklink);
  25. $link=$kliklink[1];
  26.  
  27. // Liczymy linki znajdujące się na stronie
  28. $ilelink=count($link);
  29.  
  30. // Losujemy link
  31. $jakilink=rand(1,$ilelink);
  32.  
  33. // Czekamy 5 sekund
  34. sleep(10);
  35.  
  36. // Wchodzimy na wylosowany link z losowego adresu proxy
  37. $curllink=curl_init("$link[$jakilink]");
  38. curl_setopt($curllink, CURLOPT_RETURNTRANSFER, 1);
  39. curl_setopt($curllink, CURLOPT_TIMEOUT, 10);
  40. curl_setopt($curllink, CURLPROXY_HTTP, "http://$proxy[$i]");
  41. curl_exec($curllink);
  42.  
  43. echo"<br><b>Kliknięto w:</b> $link[$jakilink] <b>z proxy:</b> $proxy[$i]";
  44. }
  45.  
  46. // Autorem skryptem jest Sylwin (prawa autorskie)
  47. ?>
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.