[Jsign-commits] CVS: pyweb getlinks.py,1.1,1.2
Brought to you by:
borillo
|
From: David R. <vr...@us...> - 2001-09-27 22:54:54
|
Update of /cvsroot/jsign/pyweb
In directory usw-pr-cvs1:/tmp/cvs-serv25218/pyweb
Modified Files:
getlinks.py
Log Message:
Primera versión operativa. Está versión funciona, tarda 25min. en recorrerse todo el sic,
loga los errores de documento no encontrado (404), los de autorizacion requerida(401), los
errores en el codigo html. Es una caña, vamos. Quien me encuentra algún error, o me propone
nuevas funcionalidades?
Index: getlinks.py
===================================================================
RCS file: /cvsroot/jsign/pyweb/getlinks.py,v
retrieving revision 1.1
retrieving revision 1.2
diff -C2 -d -r1.1 -r1.2
*** getlinks.py 2001/09/27 12:39:11 1.1
--- getlinks.py 2001/09/27 22:54:50 1.2
***************
*** 19,25 ****
i = string.find(link, '#')
if i >= 0:
! link = link[:i] # Remove #fragment
! words = string.split(link) # Split in whitespace delimited words return
! link = string.join(words, "")
return link
--- 19,26 ----
i = string.find(link, '#')
if i >= 0:
! link = link[:i] # Eliminamos los #
! link = string.replace(link, " ", "") # Eliminamos los blancos
! link = string.replace(link, "\n", "")
! link = string.replace(link, "\r", "")
return link
***************
*** 72,76 ****
if not self.dic_urls.has_key(link):
self.dic_urls[link] = 0
! open(logs["links"],"a+").write("%s\n" % (link))
# Quedan URLs por procesar ?
--- 73,77 ----
if not self.dic_urls.has_key(link):
self.dic_urls[link] = 0
! # open(logs["links"],"a+").write("%s\n" % (link))
# Quedan URLs por procesar ?
***************
*** 92,95 ****
--- 93,106 ----
def base_add(self, alias):
self.base.append(alias)
+
+ def marca_error(self, url):
+ self.dic_urls[url] = 2
+
+ def write_links(self):
+ file_links = open(logs["links"], "a+")
+ for link in [ f for f in self.dic_urls.keys() if self.dic_urls[f] == 1]:
+ file_links.write("%s\n" % (link))
+ file_links.close()
+
# Inicio del script
***************
*** 116,120 ****
else:
parser = URLExtractor(dir_base)
!
# Empezamos por la direccion que nos pasan como parámetro
parser.dic_urls[sys.argv[1]] = 0
--- 127,133 ----
else:
parser = URLExtractor(dir_base)
!
! url_opener = urllib.URLopener()
!
# Empezamos por la direccion que nos pasan como parámetro
parser.dic_urls[sys.argv[1]] = 0
***************
*** 125,137 ****
while url:
parser.actual=url
! open(logs["log"], "a+").write("**********************************************\nDirección: %s\n\n" %(url))
print ( "%d. Procesando %s..." % (count, url))
! try:
! parser.feed(urllib.urlopen(url).read()) # Lanzo el parser ...
! parser.close() # ... y lo cierro
! except:
! open(logs["error"], "a+").write("**********************************************\nDirección: %s\n\n" %(url))
- parser.use_url(url) # Marco la URL como procesada
if parser.has_urls():
url = parser.get_url() # Obtengo una URL no procesada
--- 138,166 ----
while url:
parser.actual=url
! open(logs["log"], "a+").write("\n**********************************************\nDirección: %s\n" %(url))
print ( "%d. Procesando %s..." % (count, url))
! try: # Capturamos los fallos de acceso a urls
! data_html = url_opener.open(url)
!
! try: # Capturamos los fallos con el parser SGML
! parser.feed(data_html.read()) # Lanzo el parser ...
! parser.close() # ... y lo cierro
! parser.use_url(url) # Marco la URL como procesada
! except:
! parser.use_url(url)
! open(logs["error"], "a+").write("Dirección: %s tiene problemas con el parser SGML\n" %(url))
!
! data_html.close()
!
! except IOError, error_code:
! parser.marca_error(url)
! if error_code[0] == "http error":
! if error_code[1] == 401:
! open(logs["error"], "a+").write("Dirección: %s requiere autorización (401)\n" %(url))
! elif error_code[1] == 404:
! open(logs["error"], "a+").write("Dirección: %s no encontrada (404)\n" %(url))
! else:
! open(logs["error"], "a+").write("Dirección: %s tiene un error desconocido\n" %(url))
if parser.has_urls():
url = parser.get_url() # Obtengo una URL no procesada
***************
*** 140,142 ****
--- 169,173 ----
else:
url = None
+
+ parser.write_links()
|