Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> Spider (wyszukiwanie URL-i), Klasa, PHP5
Fipaj
post 18.03.2006, 16:05:13
Post #1





Grupa: Zarejestrowani
Postów: 691
Pomógł: 0
Dołączył: 19.01.2005
Skąd: Warszawa

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


  1. <?php
  2. class Spider {
  3. public $urls = array ();
  4. function doSearch ($url) {
  5. if (!in_array ($url, $this -> urls)) {
  6. $this -> urls[] = $url;
  7. $site = file_get_contents ($url);
  8. print ('Przeparsowano dokument: ' . $url . "\n");
  9. $data = explode ('"', $site);
  10. foreach ($data as $item) {
  11. if (ereg ('^http://', $item) && !ereg ('w3', $item)) {
  12. print (' ' . $item . "\n");
  13. $urls[] = $item;
  14. sleep (1);
  15. }
  16. }
  17. return $urls;
  18. }
  19. }
  20. function recursiveSearch ($url) {
  21. $items = $this -> doSearch ($url);
  22. if (is_array ($items)) {
  23. foreach ($items as $item) {
  24. if (!in_array ($item, $this -> urls)) {
  25. $urls = $this -> recursiveSearch ($item);
  26. }
  27. }
  28. }
  29. return $urls;
  30. }
  31. }
  32. $spider = new Spider;
  33. $spider -> recursiveSearch ('http://fipaj.livenet.pl/wiki');
  34. ?>


Podajesz URL, Spider wyświetla na ekranie znalezione na stronie URL-e, po czym za nimi podąża... I tak w kółko ;-)

Jak gdyby komuś się nudziło w sobotnie popołudnie - polecam puścić w terminalu, ładnie to wygląda. Dla lepszych wrażeń estetycznych dodałem sleep (1).

Przyda się też wszystkim tym, którzy zabierają się do pisania wyszukiwarki biggrin.gif

Pozdrawiam,
Fipaj

Ten post edytował Fipaj 18.03.2006, 16:30:13


--------------------
Go to the top of the page
+Quote Post
NuLL
post 24.03.2006, 20:05:35
Post #2





Grupa: Zarejestrowani
Postów: 2 262
Pomógł: 21
Dołączył: 3.05.2004
Skąd: Sopot, Krakow, W-wa

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


To jakis wydajnosciowy joke :?: blink.gif

Przeciez to dziwaczne rozbiajanie tresci calej strony mozna zastapic preg_match_all" title="Zobacz w manualu php" target="_manual - przeciez to absurd robic cos takiego.

Pozatym
  1. <?php
  2. spider::search("www.php.pl");
  3. ?>

Tworzenie obiektu i jeszcze wywolywanie metody nie jest potrzebne dla takiej blachostki.


--------------------
Javascript, Coffeescript, Node.js, Mongo, CouchDb, chmury, workery & inne bajery - zycie jest zbyt krotkie aby miec nudna prace :)
Go to the top of the page
+Quote Post
Fipaj
post 24.03.2006, 20:09:24
Post #3





Grupa: Zarejestrowani
Postów: 691
Pomógł: 0
Dołączył: 19.01.2005
Skąd: Warszawa

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


Wydajnościowy joke - tak, to jest wydajnościowy joke:
Cytat(Fipaj)
Jak gdyby komuś się nudziło w sobotnie popołudnie - polecam puścić w terminalu, ładnie to wygląda. Dla lepszych wrażeń estetycznych dodałem sleep (1).

... biggrin.gif

A PCRE nie znam ;-)

Spiderka zrobiłem dla zabawy, po małej przebudowie robocik potrafi stworzyć jednak bardzo ciekawą rzecz - mapkę linków wychodzących z danej strony WWW. Opakować to jeszcze w GD i wyjdzie całkiem całkiem ;-)

edit:
OK, jutro pouczę się PCRE i napiszę bocika od nowa ;-)
----
> ktorzy zabijaja serwery
"ktorzy zabijaja swoje serwery" ;-)

Ten post edytował Fipaj 24.03.2006, 20:28:05


--------------------
Go to the top of the page
+Quote Post
NuLL
post 24.03.2006, 20:13:40
Post #4





Grupa: Zarejestrowani
Postów: 2 262
Pomógł: 21
Dołączył: 3.05.2004
Skąd: Sopot, Krakow, W-wa

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


Nie ucz ludzi pisac takie rzeczy, bo potem wyrasta pokolenie domoroslych programistow ktorzy zabijaja serwery swoimi megawydajnymi skryptami.


--------------------
Javascript, Coffeescript, Node.js, Mongo, CouchDb, chmury, workery & inne bajery - zycie jest zbyt krotkie aby miec nudna prace :)
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 Wersja Lo-Fi Aktualny czas: 6.07.2025 - 13:25