Mientras algunos salían a divertirse y celebrar el amor en San Valentín, algunos estabamos aburridos en casa, estudiando. Y como estaba aburrido de estudiar, hice este pequeño (y muy estúpido script) en Python que comparto con ustedes.
Lo que hace es buscar la cantidad de apariciones de una palabra/frase en el código de una página web. Pero no busca que exista exactamente esa cadena en el texto, sino que va buscando que aparezcan en orden las letras que componen esa palabra. Por ejemplo, si uno busca “abc” en la cadena “había una vez una casa”, el script va a tomar las letras que marqué en negrita para decir que “abc” existe una vez en la cadena.
¿Y dónde está el amor?
Hasta el momento, San Valentín no entró en la ecuación. Bueno, justamente la idea me surgió para ver cuántas veces una página decía “te amo” y “te odio”. Antes de que se lo pregunten: no, no estaba drogado ni pensando en amores perdidos. De hecho creo que se me ocurrió en el baño jaja.
A continuación, el script:
import sys
import urllib2
if len(sys.argv) < 3:
print "Please provide a URL an a string to search"
print "Example: %s ‘http://www.microsoft.com’ ‘i hate u’" % sys.argv[0]
sys.exit(1)
url = sys.argv[1]
phrase = sys.argv[2]
c = 0
stack = list(phrase)
stack2 = []
string = urllib2.urlopen(url).read()
needle = stack.pop(0)
for char in string:
if char == needle:
stack2.append(needle)
if stack:
needle = stack.pop(0)
else:
stack = stack2
stack2 = []
needle = stack.pop(0)
c = c + 1
print "The URL ‘%s’ says ‘%d’ times ‘%s’" % (url, c, phrase)
Alternativamente, si quieren ignorar los espacios en la cadena a buscar (por ejemplo en “te amo”), es cuestión de reemplazar la línea 12 por esto:
Y ahora, el ejemplo analizando la página principal de este blog:
$ python valentine.py "http://www.tail-f.com.ar" "te amo" The URL 'http://www.tail-f.com.ar' says '238' times 'te amo' $ python valentine.py "http://www.tail-f.com.ar" "te odio" The URL 'http://www.tail-f.com.ar' says '166' times 'te odio'
Parece que este blog está inspirado por más sentimientos de amor que de odio jajaja.

0 Comentarios.