Estoy intentando utilizar ahora la libreria dnspython<br><br>Lo que ocurre es que he podido identificar varios "hosts" como por ejemplo:<br><br><a href="http://l.addthiscdn.com">l.addthiscdn.com</a><br><a href="http://login.live.com">login.live.com</a><br>
<a href="http://meta.wikimedia.org">meta.wikimedia.org</a><br><a href="http://peru21.pe">peru21.pe</a><br><a href="http://translate.google.com.pe">translate.google.com.pe</a><br><a href="http://zulu.tweetmeme.com">zulu.tweetmeme.com</a><br>
<a href="http://www.update.microsoft.com">www.update.microsoft.com</a><br><a href="http://banners.grupolarepublica.com.pe">banners.grupolarepublica.com.pe</a><br><br>Pero ahora lo que intento, y con el fin de no complicar tanto la agrupacion de los registros de log, almacenar en una columna unicamente el dominio principal, siguiendo con el ejemplo, quisiera procesar algo como.<br>
<br><a href="http://login.live.com">login.live.com</a> > <a href="http://live.com">live.com</a><br><a href="http://banners.grupolarepublica.com.pe">banners.grupolarepublica.com.pe</a> > <a href="http://grupolarepublica.com.pe">grupolarepublica.com.pe</a><br>
<a href="http://www.update.microsoft.com">www.update.microsoft.com</a> > <a href="http://microsoft.com">microsoft.com</a><br><br>Se me ocurre que se puede utilizar para esto la libreria dnspython, pero hasta ahora unicamente he conseguido separar en listas cada componente del dominio con la funcion <br>
dns.name.from_text("host")<br><br>Alguien tiene una mejor idea ? O talvez mas experiencia con dnspython<br><br>Gracias por su apoyo<br><br><br><br><br><br><div class="gmail_quote">El 13 de abril de 2010 11:08, Arnau Sanchez <span dir="ltr"><<a href="mailto:pyarnau@gmail.com">pyarnau@gmail.com</a>></span> escribió:<br>
<blockquote class="gmail_quote" style="border-left: 1px solid rgb(204, 204, 204); margin: 0pt 0pt 0pt 0.8ex; padding-left: 1ex;"><div class="im">On 13/04/10 01:27, lopz wrote:<br>
<br>
<blockquote class="gmail_quote" style="border-left: 1px solid rgb(204, 204, 204); margin: 0pt 0pt 0pt 0.8ex; padding-left: 1ex;">
No sé, yo no lo veo necesario usar un módulo de 3ros para parsear un<br>
string, podrías hacerlo a base de strings y slices, o ahora que<br>
aprendí lo básico de expresiones regulares me encantan, tiraría por<br>
esto último.<br>
</blockquote>
<br></div>
Cierto, con splits de cadenas y expresiones regulares debería ser muy sencillo extraer cualquier información del log.<div class="im"><br>
<br>
<blockquote class="gmail_quote" style="border-left: 1px solid rgb(204, 204, 204); margin: 0pt 0pt 0pt 0.8ex; padding-left: 1ex;">
Lo de abrir todo el fichero grande es mucho para cargarlo en memória,<br>
tendrás que usar buffers o algo así<br>
</blockquote>
<br></div>
Como ya se ha comentado más de una vez, el objeto que devuelve Python al abrir un fichero de texto es iterable (a cada paso devuelve una línea). Así que no hay preocuparse del tamaño del fichero si se usa como un iterador:<br>
<br>
for line in open(path):<br>
print line<br>
<br>
Lo normal es crear generadores si el proceso consta de diferentes etapas.<br>
<br>
Respecto a cómo separar una URL en sus partes:<br>
<br>
<a href="http://docs.python.org/library/urlparse.html" target="_blank">http://docs.python.org/library/urlparse.html</a><div><div></div><div class="h5"><br>
_______________________________________________<br>
Python-es mailing list<br>
<a href="mailto:Python-es@python.org" target="_blank">Python-es@python.org</a><br>
<a href="http://mail.python.org/mailman/listinfo/python-es" target="_blank">http://mail.python.org/mailman/listinfo/python-es</a><br>
FAQ: <a href="http://python-es-faq.wikidot.com/" target="_blank">http://python-es-faq.wikidot.com/</a><br>
</div></div></blockquote></div><br>