Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [PHP] Automatyczne odwiedzanie podstron innego serwisu
Forum PHP.pl > Forum > Przedszkole
wiktor1984
Witam jak w temacie potrzebował bym napisać mały skrypt który automatycznie odwiedzał by podstrony innego serwisu
Niestety nie mam zielonego pojęcia jak się za to zabrać oprócz tego że najprawdopodobniej będzie trzeba zaprząc do pracy CRON-A (Gdyż czas wykonywania skryptów jest ograniczony przez dany serwer), stworzyć pętle i jakąś zmienną z nazwami podstron w tym przypadku sprawa jest prosta gdyż podstrony wyglądają następująco http:/xxx/31487326 nazwa podstrony to po prostu liczba.
Jak by ktoś wiedział jak się do tego zabrać niech podpowie:)
Pozdrawiam
SmokAnalog
Jeśli tych stron jest tak dużo, to faktycznie cron jest dobrym pomysłem. Do samego odwiedzenia wystarczy zwykłe file_get_contents. Możesz to wywoływać w cronie i tak długo jak ta funkcja nie zwraca false, nadpisywać numer ostatnio odwiedzonej podstrony (np. w pliku lub bazie danych).
wiktor1984
  1. <?php
  2.  
  3. while($x <= 100000)
  4. {
  5. $x=rand(0,100000);
  6. echo '<a href="http://xxx/'.$x.'">http://xxx/'.$x.' </a> ';
  7. echo '<br>';
  8. }
  9.  
  10. ?>

Jak narazie doszedłem do tworzenia linków działa ok no prawie
chciałem użyć funkcji header Location ale skrypt przestanie działać po pierwszym otwarciu podstrony a nawet jak za pomocą header Location otworzymy w nowym oknie (nie wiem czy się tak da) to będzie problem bo każda podstrona będzie się otwierała osobno aż się wszystko zawiesi zaraz poczytam o file_get_contents jeszcze nie używałem

  1. <?php
  2. $strona = 'http://forum.php.pl/';
  3. $pobierz = file_get_contents($strona);
  4. echo $pobierz;
  5. ?>


file_get_contents służy raczej do pobierania zawartości strony
ale się raczej nada jeśli można było by zrobić aby funkcja pobierała np tylko same nagłówki h1 albo nazwy stron
aby było widać czy skrypt działa i na jakich stronach był

  1. <?php
  2.  
  3. while($x <= 100000)
  4. {
  5. $x=rand(0,100000);
  6. echo '<a href="XXX/'.$x.'">XXX/'.$x.' </a> ';
  7. echo '<br>';
  8. echo '<br>';
  9. echo '<br>';
  10. $strona = "XXX/$x";
  11. echo $strona;
  12. echo '<br>';
  13. $pobierz = file_get_contents($strona);
  14. echo $pobierz;
  15. echo '<br>';
  16. echo '<br>';
  17. echo '<br>';
  18. echo '<br>';
  19. }
  20.  
  21. ?>


Wszystko pięknie ładnie skrypt lata po podstronach (Przy okazji odczytuje całe podstrony To akurat będę chciał usunąć nie jest mi potrzebne i napewno dużo spowalnia działanie)
Problem pojawia się gdy dana strona wymaga logowania aby zobaczyć podstrony. wyskakuje błąd:
Warning: file_get_contents(http://XXX/70722): failed to open stream: HTTP request failed! HTTP/1.1 403 Forbidden in C:\index.php on line 13
Choć włączam skrypt na przeglądarce na której jestem aktualnie zalogowany na danej stronie,
Wie ktoś jak to zrobić pewnie muszę być jakoś zalogowany za pomocą tego skryptu,
SmokAnalog
Po co Ty generujesz te linki? o0 Wystarczy samo file_get_contents. O ile dobrze rozumiem, chodzi po prostu o odpalenie tej strony, zaznaczenie swojej obecności. Wystarczy tak:
  1. for ($page = 1; $page < 100000; $page++) {
  2. file_get_contents('http://xxx/' . $page);
  3. }


Jeśli chodzi o logowanie, to możesz wysłać cURL-em dane logowania przez rozpoczęciem pętli. Tutaj masz opis jak to zrobić: http://devpytania.pl/questions/15721/wysya...j-z-poziomu-php
wiktor1984
Witam jeszcze jedno pytanie można zabezpieczyć się jakoś przed logowaniem za pomocą cURL

Na niektórych stronach działa ok a na innych wyskakuje taki błąd:

Nie znaleziono obiektu!
Nie znaleziono żądanego URL-a na tym serwerze. Odnośnik na referującej stronie wydaje się być nieprawidłowy lub nieaktualny. Poinformuj autora tej strony o problemie.
Jeśli myślisz, że jest to błąd tego serwera, skontaktuj się z administratorem.
Error 404


Brak uprawnień (403)
Strona o adresie / wymaga specjalnych uprawnień, których nie posiadasz
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.