comment
IRC Chat
play_arrow
Este sitio utiliza cookies propias y de terceros. Si continúa navegando consideramos que acepta el uso de cookies. OK Más Información.

[SOLUCIONADO] Con esta expresion regular (si asi se puede llamar)

  • 6 Respuestas
  • 2072 Vistas

0 Usuarios y 1 Visitante están viendo este tema.

Desconectado juliianc95

  • *
  • Underc0der
  • Mensajes: 61
  • Actividad:
    0%
  • Reputación 0
    • Ver Perfil
    • Email
« en: Enero 05, 2014, 10:33:38 am »
buenas amigos. bueno tengo mucho tiempo probando con esta expresion regular (si asi se puede llamar) dado que quiero que me extraiga todos los <iframe> que tiene la pagina o todos los videos por decirlo asi.

creo que la pagina esta encryptada. o algo parecido. "de ser asi me ayudarian a desencriptarla? o explicarme como".

No tienes permisos para ver links. Registrate o Entra con tu cuenta

Código: Python
  1. #!/usr/bin/env python
  2. # Este archivo usa el encoding: utf-8
  3. import re
  4. import mechanize
  5. import cookielib
  6. import anticlon
  7. import MySQLdb
  8. import sys
  9. from unicodedata import normalize
  10. br=mechanize.Browser()
  11. #Se crea la instancia del cookie:
  12. j = cookielib.LWPCookieJar()
  13. #Se define que no se maneja robots:
  14. br.set_handle_robots(False)
  15. #Se define el tiempo de refrescamiento:
  16. br.set_handle_refresh(mechanize._http.HTTPRefreshProcessor(), max_time=1)
  17. #Se define las cabeceras del navegador, en este caso se le está diciendo que el navegador es un firefox desde Linux Debian:
  18. br.addheaders = [('User-agent', 'Mozilla/5.0 (X11; U; Linux i686; es-VE; rv:1.9.0.1)Gecko/2008071615 Debian/6.0 Firefox/9')]
  19.  
  20. def remover_acentos(txt, codif='utf-8'):
  21.     ''' Devolve cópia de uma str substituindo os caracteres
  22.        acentuados pelos seus equivalentes não acentuados.
  23.    
  24.    ATENÇÃO: carateres gráficos não ASCII e não alfa-numéricos,
  25.    tais como bullets, travessões, aspas assimétricas, etc.
  26.    são simplesmente removidos!
  27.    
  28.    >>> remover_acentos('[ACENTUAÇÃO] ç: áàãâä! éèêë? íìĩîï, óòõôö; úùũûü.')
  29.    '[ACENTUACAO] c: aaaaa! eeee? iiiii, ooooo; uuuuu.'
  30.    '''
  31.     return normalize('NFKD', txt.decode(codif)).encode('ASCII','ignore').replace('\n','')
  32.  
  33.  
  34. url="http://www.animeid.tv/peliculas?pag=1"
  35. r=br.open(url)
  36. htmlstring=br.response().read()
  37. #print htmlstring
  38.  
  39. num=0
  40. lol=0
  41. for num in range(0,2):
  42.     url="http://www.animeid.tv/peliculas?pag="+str(num)
  43.     r=br.open(url)
  44.     htmlstring=br.response().read()
  45.     #print br.title()
  46.     #print br.geturl()
  47.     #print htmlstring  
  48.     #//////////////////////////////////////////////////////////////////////////////////
  49.     # Obtiene los enlaces de todos los listados y los guarda en links
  50.     #//////////////////////////////////////////////////////////////////////////////////
  51.     regex='<article class="item"> <a href="(.+?)"><header>'
  52.     pattern = re.compile(regex, re.I | re.DOTALL | re.MULTILINE)
  53.     lista_temp = pattern.findall(htmlstring)
  54.     url="http://www.animeid.tv"
  55.     for u in lista_temp:
  56.         web=url+u
  57.         #print web
  58.         r=br.open(web)
  59.         htmlstring=br.response().read()
  60.         #print htmlstring
  61.         try:
  62.             regex='<hgroup> <h1>(.+?)</h1>'
  63.             pattern = re.compile(regex, re.I | re.DOTALL | re.MULTILINE)
  64.             titulo = remover_acentos(pattern.search(htmlstring).group(1))
  65.         except:
  66.             titulo = "-"
  67.         #print titulo
  68.         try:
  69.             regex='<p class="sinopsis">(.+?)</p>'
  70.             pattern = re.compile(regex, re.I | re.DOTALL | re.MULTILINE)
  71.             sinopsis = remover_acentos(pattern.search(htmlstring).group(1))
  72.         except:
  73.             sinopsis = "-"
  74.         #print sinopsis
  75.         try:
  76.             regex='<ul class="tags">(.+?)</li></ul>'
  77.             pattern = re.compile(regex, re.I | re.DOTALL | re.MULTILINE)
  78.             temp_var = pattern.search(htmlstring).group(1)
  79.             regex='<li><a.+?>(.+?)</a></li>'
  80.             pattern = re.compile(regex, re.I | re.DOTALL | re.MULTILINE)
  81.             genero = pattern.findall(temp_var)
  82.             genero = remover_acentos(", ".join(genero))
  83.         except:
  84.             genero = "-"
  85.         #print genero
  86.         try:
  87.             regex='<span class="c">(.+?)</span>'
  88.             pattern = re.compile(regex, re.I | re.DOTALL | re.MULTILINE)
  89.             tipodepelicula = remover_acentos(pattern.search(htmlstring).group(1))
  90.         except:
  91.             tipodepelicula = "-"
  92.         #print tipodepelicula
  93.         try:
  94.             regex='<span class="c e1">(.+?)</span>'
  95.             pattern = re.compile(regex, re.I | re.DOTALL | re.MULTILINE)
  96.             estadodepelicula = remover_acentos(pattern.search(htmlstring).group(1))
  97.         except:
  98.             estadodepelicula = "-"
  99.         #print estadodepelicula
  100.         try:
  101.             regex='Emitido:</strong> <span class="c">(.+?)</span>'
  102.             pattern = re.compile(regex, re.I | re.DOTALL | re.MULTILINE)
  103.             emiciondepelicula = remover_acentos(pattern.search(htmlstring).group(1))
  104.         except:
  105.             emiciondepelicula = "-"
  106.         #print emiciondepelicula
  107.         try:
  108.             regex='Episodios:</strong> <span class="c">(.+?)</span>'
  109.             pattern = re.compile(regex, re.I | re.DOTALL | re.MULTILINE)
  110.             episodiosdepelicula = pattern.search(htmlstring).group(1)
  111.         except:
  112.             episodiosdepelicula = "-"
  113.         #print episodiosdepelicula
  114.         try:
  115.             regex='Duración:</strong> <span class="c">(.+?)</span>'
  116.             pattern = re.compile(regex, re.I | re.DOTALL | re.MULTILINE)
  117.             duraciondepelicula = pattern.search(htmlstring).group(1)
  118.         except:
  119.             duraciondepelicula = "-"
  120.         #print duraciondepelicula
  121.         #//////////////////////////////////////////////////////////////////////////////////
  122.         # Obtiene los enlaces de todas las peliculas y las guarda en links
  123.         #//////////////////////////////////////////////////////////////////////////////////
  124.         regex='<ul id="listado">(.+?)</ul>'
  125.         pattern = re.compile(regex, re.I | re.DOTALL | re.MULTILINE)
  126.         temp_var = pattern.search(htmlstring).group(1)
  127.         regex='<li><a href="(.+?)"><strong>(.+?)</strong> <small class=".+">(.+?)</small></a></li>'
  128.         pattern = re.compile(regex, re.I | re.DOTALL | re.MULTILINE)
  129.         temp_var = pattern.findall(temp_var)
  130.         url="http://www.animeid.tv"
  131.         for i in temp_var:
  132.             weblistado= url+i[0]
  133.             #print weblistado
  134.             capitulolistado = remover_acentos(i[1])
  135.             #print capitulolistado
  136.             temp_var = i[2]
  137.             regex='(.*) (.*) (.*)'
  138.             pattern = re.compile(regex, re.I | re.DOTALL | re.MULTILINE)
  139.             temp_var2 = pattern.search(temp_var)
  140.             dialistado = temp_var2.group(1)
  141.             meslistado = temp_var2.group(2).replace('Ene','01').replace('Feb','02').replace('Mar','03').replace('Abr','04').replace('May','05').replace('Jun','06').replace('Jul','07').replace('Ago','08').replace('Sep','09').replace('Oct','10').replace('Nov','11').replace('Dic','12')
  142.             aniolistado =  temp_var2.group(3)
  143.             fechalistado = aniolistado + "/" + meslistado + "/" + dialistado
  144.             #print fechalistado
  145.             r=br.open(weblistado)
  146.             htmlstring=br.response().read()
  147.             print htmlstring
  148.  

hay esta yo uso es mechanize. ese es el codigo.

como podran ver arriba los <iframe>(videos) son varios.

gracias de antemano
« Última modificación: Mayo 25, 2014, 03:46:57 pm por blackdrake »

Desconectado Neutron

  • *
  • Underc0der
  • Mensajes: 64
  • Actividad:
    0%
  • Reputación 0
  • Never understimate me!
    • Ver Perfil
    • ..title that?
« Respuesta #1 en: Enero 05, 2014, 10:47:55 am »
Que barbaro amigo, no hay necesidad de pegar todo ese asunto en el post, mejor pon un enlace a pastebin o ponlo en un spoiler. Anyway, usa BeautifulSoup para eso, te ahorras mucho trabajo. No tienes permisos para ver links. Registrate o Entra con tu cuenta. Esa pagina lo unico que esta es algo mal organizada, nada de cifrada xD Pero con ese salcoho de codigo que has puesto abajo no te puedo ayudar mucho, si das las url  seria mucho mejor.
When I was a child, I spake as a child, I understood as a child, I thought as a child: but when I became a man, I put away childish things.

Desconectado Once

  • *
  • Underc0der
  • Mensajes: 391
  • Actividad:
    0%
  • Reputación 0
    • Ver Perfil
    • El blog de Once
  • Twitter: @don_once
« Respuesta #2 en: Enero 05, 2014, 11:21:43 am »
Como te dice Neutron, en este caso lo que acabas de poner es inservible. Si quieres que te ayuddemos tendrás que poner el link de la web o subir el código a pastebin (desde el body, el CSS es inútil) aunque dices que quieres sacar todos los iframes y código que colocaste arriba no hay una sola etiqueta iframe.

La web no está encriptada, lo más "raro" que puedes encontrar es que las imágenes están en el mismo html codificadas en base64 y no en un archivo en el servidor.

Saludos!






No tienes permisos para ver links. Registrate o Entra con tu cuenta

Desconectado juliianc95

  • *
  • Underc0der
  • Mensajes: 61
  • Actividad:
    0%
  • Reputación 0
    • Ver Perfil
    • Email
« Respuesta #3 en: Enero 05, 2014, 11:43:26 am »
listo post modificado (disculpen)

ahora si acepto ayudas :D

Desconectado Once

  • *
  • Underc0der
  • Mensajes: 391
  • Actividad:
    0%
  • Reputación 0
    • Ver Perfil
    • El blog de Once
  • Twitter: @don_once
« Respuesta #4 en: Enero 05, 2014, 12:24:41 pm »
Lo que necesitas no está en iframes, está en un json dentro de un div.

Código: Python
  1. # -*- coding: utf-8 -*-
  2.  
  3. import re
  4. import json
  5. import urllib
  6.  
  7. url = "http://www.animeid.tv/ver/magi-the-kingdom-of-magic-13"
  8.  
  9. data = urllib.urlopen(url).read()
  10. exp = re.findall('<div class="parte" data=(.*?)>.*?</div>', data, re.S | re.MULTILINE)
  11. for i in exp:
  12.     print json.loads(i)
  13.     print

Organizalo para sacar la información que necesites.

Saludos!






No tienes permisos para ver links. Registrate o Entra con tu cuenta

Desconectado juliianc95

  • *
  • Underc0der
  • Mensajes: 61
  • Actividad:
    0%
  • Reputación 0
    • Ver Perfil
    • Email
« Respuesta #5 en: Enero 05, 2014, 12:40:33 pm »
Muchas gracias sos un capo. me hace falta un cursito de urlib :/

aunque no encuentro la forma de sacar cada uno de los json.loads. me lo entrega en lista. me ayudas con esta parte?
« Última modificación: Enero 05, 2014, 12:58:37 pm por juliianc95 »

Desconectado Once

  • *
  • Underc0der
  • Mensajes: 391
  • Actividad:
    0%
  • Reputación 0
    • Ver Perfil
    • El blog de Once
  • Twitter: @don_once
« Respuesta #6 en: Enero 05, 2014, 01:21:47 pm »
No tienes permisos para ver links. Registrate o Entra con tu cuenta
aunque no encuentro la forma de sacar cada uno de los json.loads. me lo entrega en lista. me ayudas con esta parte?

Te está regresando un string

Saludos!






No tienes permisos para ver links. Registrate o Entra con tu cuenta

 

¿Te gustó el post? COMPARTILO!



[SOLUCIONADO] ¿Kali Linux o Kali Linux Ligth ?

Iniciado por worq

Respuestas: 2
Vistas: 6910
Último mensaje Noviembre 21, 2017, 12:28:54 pm
por Codig0Bit
[SOLUCIONADO] ¿Como publicar un software como software libre?

Iniciado por FuriosoJack

Respuestas: 2
Vistas: 1579
Último mensaje Mayo 23, 2017, 07:24:22 am
por HATI
[SOLUCIONADO] Multiuploader de imagenes con mysql, hosting de imagenes con mysql

Iniciado por graphixx

Respuestas: 4
Vistas: 2176
Último mensaje Marzo 26, 2013, 05:42:58 pm
por Xt3mP
[SOLUCIONADO] Linux Mint, errores, errores y mas errores...

Iniciado por n1sendev

Respuestas: 12
Vistas: 2815
Último mensaje Noviembre 22, 2017, 06:50:55 am
por RuidosoBSD
[SOLUCIONADO] Ayuda urgente con Virus "Virus.Win32Sality"

Iniciado por Napsters

Respuestas: 6
Vistas: 3401
Último mensaje Junio 11, 2012, 03:38:18 am
por Satyricon