#!/usr/bin/env python
# -*- coding: UTF-8 -*-
############################################################
# (c) 2010 Benjamín Albiñana Pérez
# benalb@gmail.com
#
# Este script es "beerware": si así lo desea, puede invitar
# al autor del mismo a una cerveza, si alguna vez llega a 
# conocerlo en persona. Puede redistribuir y modificar el 
# script a su gusto.
# 
# Este script se distribuye SIN GARANTIA ALGUNA, ni siquiera
# de que funcione. Luego no me vengan llorando. 
###########################################################

from optparse import OptionParser
import urllib2
import re
from BeautifulSoup import BeautifulSoup, SoupStrainer

""" El script acepta dos parámetros, la url de la página que queremos
    tratar y el sitio del que queremos que descargue los ficheros """

parser = OptionParser()

parser.add_option("-u", "--url",
		  action='store', type='string', dest='url',
  		  help="Dirección URL de la página a tratar")

parser.add_option("-s", "--site", 
		  action='store', type='string', dest='site', 
		  help="Sitio de descarga, Megaupload, Rapidshare, etc")

(options, args) = parser.parse_args()

""" Obtenemos la página a tratar """
page = urllib2.urlopen(options.url).read()

""" Fea solución para un mal código html """
page = re.sub('</scr', '<\/scr', page)

""" Creamos una lista de tags "a", con la condición que pertenezcan
    al sitio del que bajaremos los ficheros. De esa lista, extraemos 
	las direcciones url que pasaremos luego al tucan """

linkToSite = SoupStrainer('a', href=re.compile(options.site))

getTags = [tag for tag in BeautifulSoup(page, parseOnlyThese=linkToSite)]

for link in getTags:
	print link.get('href')
