Menú

Mostrar Mensajes

Esta sección te permite ver todos los mensajes escritos por este usuario. Ten en cuenta que sólo puedes ver los mensajes escritos en zonas a las que tienes acceso en este momento.

Mostrar Mensajes Menú

Mensajes - .:WindHack:.

#91
Al principio traté de hacer una función que me limpiara todos los valores codificados, muy parecida a la que has puesto pero lastimosamente no me dio el resultado que esperaba ya que me complicó un poco más todo (¡Jejeje!).

Con el resultado poco satisfactorio tomé la decisión de hacer la función usando listas, pues me sirvió y ayudó bastante para obtener la URL del vídeo más fácilmente, aunque como bien dices, no podía contemplar todos los valores posibles pero sí los estrictamente necesarios. Además podía establecer la igualdad que yo quisiera. Por ejemplo %7C le puse como valor <begin> Lo que me indicaba que allí empezaba el enlace hacia el servidor. ¡Jejejeje!


De todos modos...¡Muchas gracias Novlucker!  ;D
#92
Código (python) [Seleccionar]
#!/usr/bin/env python
# -*- coding: utf-8 -*-
# WS Downloader.py - v0.1 (Beta)
# Autor(es): .:WindHack:. & swik
# www.daw-labs.com | www.cibernodo.net
# Registrado en SafeCreative
# Licencia: Creative Commons Reconocimiento-NoComercial-CompartirIgual 3.0
# 17/11/2010

import sys, urllib, os

#
# @Charset
#
Char = ['%3A','%2F','%26','%2C','%3D','%252C','%253A','%7C','%3F']
By =   [':','/','&',',','=',',',':','<begin>','?']

#
# URLDecode(sURL)
# Descifra la URL teniendo en cuenta el Charset.
#
def URLDecode(sURL):
   for i in range(len(Char)):
    sURL = sURL.replace(Char[i],By[i])
   return sURL

#
# GetSourceCode(sURL)
# Obtiene el código de fuente del vídeo (sitio).
#
def GetSourceCode(sURL):
   try:
    URL = urllib.urlopen(sURL)
    sSource = URL.read()
    URL.close()
    return sSource
   except:
       print 'Error de conexión.'
       exit()

#
# GetIndexVideo(sSource,Tags)
# Obtiene la posición de un "Tag" o etiqueta.
#
def GetIndexVideo(sSource,Tags):
   return sSource.find(Tags)

#
# GetVideoTitle(sSource)
# Obtiene el título del vídeo.
#
def GetVideoTitle(sSource):
   sSource = sSource[2000:5500]
   Begin = GetIndexVideo(sSource,'<meta name="title" content="')+28
   sSource = sSource[Begin:]
   End = GetIndexVideo(sSource,'>')-1
   sSource = sSource[:End]
   if ' ' in sSource:
sSource = sSource.replace(' ','_')
   return sSource

#
# GetVideoURL(sSource)
# Obtiene la URL de descarga del vídeo.
#
def GetVideoURL(sSource):
   sSource = sSource[9000:30000]
   Begin = GetIndexVideo(sSource,'<begin>')+7
   sSource = sSource[Begin:]
   End = GetIndexVideo(sSource,'id=')+19
   sSource = sSource[:End]+'&title=Video(WS_Downloader)'
   return sSource


#
# GetSavePath(Title)
# Obtiene la ruta en la cual se guardará el vídeo, teniendo en cuenta
# el sistema operativo.
#
def GetSavePath(Title):
   if os.name == 'posix':
return os.getenv('HOME')+'/'+Title+'.flv'
   if os.name == 'nt':
return os.getenv('HOMEDRIVE')+'\\'+Title+'.flv'

#
# DownloadStatus(Bloque, Tamano, Total)
# Muestra el estado de la descarga.
#
def DownloadStatus(Bloque, Tamano, Total):
   Cantidad = Bloque * Tamano / 1024000.0
   Total = Total / 1024000.0
   print 'Cantidad descargada: %s MB de %s MB ...' % (round(Cantidad,1),round(Total,1))
   if Cantidad >= Total:
       print 'Descarga finalizada.'

#
# DownloadVideo(sURL, sName, sStatus)
# Descarga el vídeo de los servidores de YouTube.
#
def DownloadVideo(sURL, sName, sStatus):
   try:
       Download = urllib.urlretrieve(sURL, sName, sStatus)
       return Download[0]
   except:
       print 'Error el descargar.'
       exit()

def __main__():
   __Help__ = '''
__        ______    ____                      _                 _
\ \      / / ___|  |  _ \  _____      ___ __ | | ___   __ _  __| | ___ _ __
\ \ /\ / /\___ \  | | | |/ _ \ \ /\ / / '_ \| |/ _ \ / _` |/ _` |/ _ \ '__|
 \ V  V /  ___) | | |_| | (_) \ V  V /| | | | | (_) | (_| | (_| |  __/ |  
  \_/\_/  |____/  |____/ \___/ \_/\_/ |_| |_|_|\___/ \__,_|\__,_|\___|_|  
   © Cibernodo & DaW - Labs
   Uso:
   ./WS_Downloader.py <Opción> <Id>
   
   Opciones:
       -D     : Descargar video directamente.
       -G     : Obtener URL de descarga.
       -help  : Ver Ayuda.
              '''

   try:
       Opt = sys.argv[1]
       if Opt == '-help':
           print __Help__
           
       if len(sys.argv) > 2:
           Id = URLDecode(GetSourceCode('http://www.youtube.com/watch?v='+sys.argv[2]))
           Title = GetSavePath(GetVideoTitle(Id))
           URL = GetVideoURL(Id)

           if Opt == '-G':
               print '======== Video URL ========\n',URL

           elif Opt == '-D':
               DownloadVideo(URL,Title,DownloadStatus)
               
   except:
       print __Help__
             
if __name__ == "__main__":
  __main__()





Más Información:
DaW - Labs | WS Downloader: ¡Descarga vídeos de YouTube!
Cibernodo | WS Downloader: ¡Descarga vídeos de YouTube!
#93
¿Sabes algo?... Lo único que te entendí fue el: Hola.

No entiendo tu problema pero en todo caso, en este foro no se tratan esos temas. Si quieres espiarle el correo a tu novia, puedes ir buscando en el directorio otro lado para este tipo de ¿dudas?.





Saludos.,
#94
Prueba con alguno que pone en la siguiente lista:

http://www.fileinfo.com/extension/pic




Saludos.,
#95
El error es prácticamente una tontería. Está en que, pides la variable K como una cadena (str).

Código (python,3) [Seleccionar]
#Introduccion de una cadena
cadena = raw_input('Escribe una cadena: ')
k = raw_input('Escribe un numero: ') # k = input('')
lista= cadena.split()
for i in range(len(lista)):
   #print len(lista[i])
   if len(lista[i])==k:
        palabras+=1


En todo caso, podrías hacer un poco más limpio el código. Con el bucle for-in puedes recorrer directamente cada elemento de la lista.

Por ejemplo:
Código (python) [Seleccionar]
sString = raw_input('Escribe una cadena: ')
List = sString.split()
K = input('Escribe un numero: ')
sWords = 0

for i in List:
   if len(i) == K:
sWords += 1




Saludos.,
#96
Scripting / Re: [Python] - Eliminar listas y par
14 Noviembre 2010, 23:00 PM
De nada.  :D
#97
Scripting / Re: [Python] - Eliminar listas y par
14 Noviembre 2010, 21:57 PM
Cita de: Meta en 14 Noviembre 2010, 20:30 PM
No, no es así: Lo he estado probando a mi manera y no.

El resultado debe ser así.
Citar[2, 5, 3]

Mirando lo que significa remove. ME imagino que quitar, eliminar. Aquí hay tantas cosa que no se done pinchar.
http://docs.python.org/search.html?q=remove

Gracias por tu tiempo.

Perdón, fue error mío al no leer el enunciado del ejercicio. Entendí que se debía eliminar los números pares de la lista, cuando lo que pedían era remover los elementos que tuviesen un índice par.

Bueno, creo que de esta manera funciona bien:

Código (python) [Seleccionar]
List = [1, 2, 1, 5, 0, 3]

i = 0
while (i < len(List)):
del List[i]
i += 1

print List


Código (PoC) [Seleccionar]
C:\Users\WindHack\Desktop\>PoC.py
[2, 5, 3]

#98
Scripting / Re: [Python] - Eliminar listas y par
14 Noviembre 2010, 19:55 PM
El código está mal. Es así:

Código (python) [Seleccionar]
List = [1,2,3,4,5,6,7,8,9,10]

for i in List:
    if i % 2 == 0:
        List.remove(i)

print List
#99
Scripting / Re: [Python] Listas y números primos.
14 Noviembre 2010, 04:25 AM
Hay un error, no todos los números primos son los que dan como resto uno (1).

Tu código da como resultado: [1,3,5,7,9] cuando debería de dar [2,3,5,7]. Ya que uno (1) no es considerado ni primo, ni compuesto, la cuenta empieza desde dos (2), siendo este el primer y único número primo par.
#100
Scripting / Re: [Python] Comparar listas de palabras
14 Noviembre 2010, 03:26 AM
Realmente el código no es extenso. A mí se me ocurrió hacerlo de la siguiente manera:

Código (python) [Seleccionar]
sString = raw_input('Cadena: ') # Pedimos la cadena...
sString = sString.lower() # Convertimos a minusculas...
lListA = sString.split() # Creo la lista con todos los elementos de la cadena...
lListB = [] # Lista vacia

for i in lListA: # Recorro la lista original
if i not in lListB: # Si el elemento no esta en la otra lista...
lListB.append(i) #... lo agrego

print lListB