Controllo del numero di link e qualche correzione di bug

Leonardo Robol [2009-10-28 07:46]
Controllo del numero di link e qualche correzione di bug
Filename
spidy.py
diff --git a/spidy.py b/spidy.py
index 84e54db..3311c7d 100755
--- a/spidy.py
+++ b/spidy.py
@@ -17,7 +17,8 @@ mtx_url_dict = mutex.mutex()

 size = 1000
 url_dict = {}
-url_counter = range(size)
+url_stack = range(size)
+link_counter = 0

 max_steps = 5

@@ -122,7 +123,7 @@ class Page():

     def __get_page(self, parent):

-        if(len(url_counter) == 0):
+        if(len(url_stack) == 0):
             self.exhausted = True
             return

@@ -159,7 +160,7 @@ class Page():
         # Questo ci serve per tenere il
         # conto di tutti gli url
         global url_dict
-        global url_counter
+        global url_stack

         self.exhausted = False
         self.analyzed = False
@@ -179,7 +180,7 @@ class Page():

         else:
             try:
-                self.ID = url_counter.pop()
+                self.ID = url_stack.pop()
             except IndexError:
                 self.exhausted = True

@@ -204,7 +205,9 @@ class Page():
         return 0

     def __add_link(self, ID):
+        global link_counter
         url_dict[self.url].links.append(ID)
+        link_counter += 1

     def links(self):
         return url_dict[self.url].links
@@ -239,20 +242,25 @@ class Crawler(threading.Thread):
             ## dalla pagina di partenza
             page = Page()

+
             ## Se ci chiedono di uscire perché abbiamo
             ## analizzato tutte la pagine ce ne andiamo
             if ExitRequired:
                 return

+            ## Analogamente ce ne andiamo se non ci sono
+            ## più vie da seguire in questa direzione
+            if page.exhausted:
+                break
+
+
             if page.step >= max_steps:
                 print " => Ohi, troppi step! Riparto"
                 page = Page(self.start_page)

             self.waitingforpage = False

-            if page.exhausted:
-                break
-
+
             if debug >= 1:
                 print " => Analyzing page %s" % page.url

@@ -305,8 +313,8 @@ if __name__ == "__main__":
     debug = bool(option.debug)
     outfile = option.outfile
     size = int(option.size)
-    url_counter = range(size)
-    url_counter.reverse()
+    url_stack = range(size)
+    url_stack.reverse()
     max_steps = int(option.max_steps)
     default_page = option.start_page

@@ -365,7 +373,10 @@ if __name__ == "__main__":

     ## Il numero massimo di pagine meno quelle avanzate =
     ## le pagine effettivamente usate!
-    out.write(str(size - len(url_counter)) + "\n")
+    out.write(str(size - len(url_stack)) + "\n")
+
+    ## Il numero di elementi non 0 sono i link!
+    out.write(str(link_counter) + "\n")


ViewGit