Página 1 de 1

Revision de codigo de mis canales nuevos

Publicado: 07 Oct 2014, 00:05
por luissalmex
Hola aqui tengo unos canales que hice pero no funcionan son de las siguientes webs
http://www.estrenosdecineonline.com/
y de
http://youpeliculasweb.com/
saque e hice canales .py de esas web pero no me funcionan yo estoy seguro que es el capturador de enlaces de videos les dejo mis codigos para ver si se puede reparar para que se vea o algo gracias

Re: Revision de codigo de mis canales nuevos

Publicado: 07 Oct 2014, 06:39
por robalo
Hola luissalmex
Deberías pasarte por viewtopic.php?f=23&t=6222
Ahí tienes algo para empezar con youpeliculasweb

Si tienes problemas con los patrones, existe una página que te puede auydar a crear los patrones.
http://regex101.com/#python

Si tienes dudas pregunta, youpeliculasweb no es un buen canal para empezar.

estrenosdecineonline no se si será complicado, no lo he mirado.

Re: Revision de codigo de mis canales nuevos

Publicado: 07 Oct 2014, 14:27
por neno1978
como se usa el regex este??

Re: Revision de codigo de mis canales nuevos

Publicado: 07 Oct 2014, 20:22
por robalo
En la caja de arriba "Regular Expression", insertas el patron y en la que está debajo "Test string" insertas el texto del que quieres extraer los datos.

Tomando como ejemplo el se posteó para youpeliculasweb.

Cogemos el patrón y lo unimos todo y lo insertamos en "Regular Expression".
Quedaría así:

Código: Seleccionar todo

<li style="display: list-item;" class="mc-container"><a href="([^"]+)".*?data-querystring="id=(\d+)".*?<img src="([^"]+)".*?<a[^>]+>([^<]+)</a>
Cogemos el texto que hay encima del patrón que está comentado que es el texto de donde queremos sacar los datos y lo pegamos en "Test string".
Quedaría así:

Código: Seleccionar todo

<li style="display: list-item;" class="mc-container"><a href="http://youpeliculasweb.com/cantinflas-2014" title="Cantinflas 2014 (2014) Película Online"><div class="tool mc-item"><div class="info_movie tile" data-tipped="http://youpeliculasweb.com/cantinflas-2014/info" data-querystring="id=4303"><div class="play_go"></div><img src="http://img-youpeliculas.com/images/2014/09/09/Cantinflas2B20142Bonline.jpg" alt="Cantinflas 2014 (2014) Película Online"></div></div></a><div class="library-show"><h4><div class="title-overflow"></div><a class="title" href="http://youpeliculasweb.com/cantinflas-2014" title="Cantinflas 2014 (2014) Película Online">Cantinflas 2014</a></h4></div></li>
Da igual en el orden que lo pegues

El ejemplo lo puedes ver aquí: http://regex101.com/r/hI5wH8/1

Re: Revision de codigo de mis canales nuevos

Publicado: 07 Oct 2014, 21:12
por luissalmex
Alguien mas quiere apoyarme a terminar este canal para añadirlo a pelisalacarta ?

Re: Revision de codigo de mis canales nuevos

Publicado: 08 Oct 2014, 08:46
por robalo
En primer lugar deberías de llamar al canal con el mismo nombre que la web y segundo que tienes que poner un mínimo de tu parte como ver el código fuente de la página y localizar los datos que quieres extraer.

Te voy a poner un mínimo del algo que funciona. Espero ver algún avance o intentos frustados con fundamentos que no se ven dónde están los errores ya te lo pongan en mayúsculas y parpadeando :)

estrenosdecineonline.py

Código: Seleccionar todo

# -*- coding: utf-8 -*-
#------------------------------------------------------------
# pelisalacarta - XBMC Plugin
# Canal para estrenosdecineonline
# http://blog.tvalacarta.info/plugin-xbmc/pelisalacarta/
#------------------------------------------------------------

import urlparse,urllib2,urllib,re
import os, sys

from core import logger
from core import config
from core import scrapertools
from core.item import Item
from servers import servertools

__channel__ = "estrenosdecineonline"
__category__ = "F"
__type__ = "generic"
__title__ = "estrenosdecineonline"
__language__ = "ES"
__creationdate__ = "20141008"

def isGeneric():
    return True

def mainlist(item):
    logger.info("channels.estrenosdecineonline mainlist")

    itemlist = []

    itemlist.append( Item(channel=__channel__, title="Estrenos", action="peliculas", url="http://www.estrenosdecineonline.com/category/estrenos-2014/"))

    return itemlist

def peliculas(item):
    logger.info("channels.estrenosdecineonline peliculas")

    itemlist = []

    ## Descarga la página y elimina todos los saltos de línea, retornos del carro, tabuladores, y ' online'
    data = scrapertools.cache_page(item.url)
    data = re.sub(r"\n|\r|\t|\s{3}|\s{2}|\sonline","",data)
    ## Reemplaza '&#8230;' por "..."
    data = re.sub(r"&#8230;","...",data)

    ## Extrae las entradas de la pagina seleccionada
    #<div class="poster marco-sinopsis"><a href="http://www.estrenosdecineonline.com/monsters-vs-aliens-creature-features-2014-online/"><img src="http://www.estrenosdecineonline.com/wp-content/uploads/2014/10/Monsters_Vs_Aliens_Creature_Features_poster-230x300.jpg" alt="Monsters Vs. Aliens: Creature Features (2014)" width="130" height="200" /></a><div class="sinopsis texto"><h3>Monsters Vs. Aliens: Creature Features (2014)</h3> <p>Los miembros del equipo Monster – Susan, Link, el Dr. Cockroach, pH.d. y B.O.B. (blob gelatinoso) – tienen que ir en contra de espeluznantes alienígenas, zombis hambrientos e incluso un...</p>

    patron = '<div class="poster marco-sinopsis">' # Empezamos el patrón por aquí para que no se cuele nada raro
    patron+= '<a href="([^"]+)">'                  # scrapedurl
    patron+= '<img src="([^"]+)".*?'               # scrapedthumbnail
    patron+= '<h3>([^<]+)</h3>'                    # scrapedtitle
    patron+= '<p>([^<]+)</p>'                      # scrapedplot

    matches = re.compile(patron,re.DOTALL).findall(data)

    for scrapedurl, scrapedthumbnail, scrapedtitle, scrapedplot in matches:

        ## Añade al listado
        itemlist.append( Item(channel=__channel__, action="findvideos", title=scrapedtitle, fulltitle=scrapedtitle, url=scrapedurl, thumbnail=scrapedthumbnail, plot=scrapedplot, folder=True) )

    ## Painación
    #<a href='http://www.estrenosdecineonline.com/category/estrenos-2014/page/2/' class='nextpostslink'>»Siguiente</a>

    ## Si hay enlace para '»Siguiente' añadir ">> Página siguiente" a la lista
    if "class='nextpostslink'" in data:
        scrapedurl = scrapertools.get_match(data,"<a href='([^']+)' class='nextpostslink'>")
        itemlist.append( Item(channel=__channel__, title=">> Página siguiente", url=scrapedurl, action="peliculas", folder=True) )

    return itemlist

def findvideos(item):
    logger.info("channels.estrenosdecineonline videos")

    itemlist = []

    ## Descarga la página
    data = scrapertools.cache_page(item.url)

    ## Busca los videos incustrados de la página
    #<iframe src="http://vk.com/video_ext.php?oid=219591128&id=169820874&hash=baa6946a23afc82f&sd" height
    patron = '<iframe.*?src="([^"]+)" height'

    matches = re.compile(patron,re.DOTALL).findall(data)

    for scrapedurl in matches:
        scrapedtitle = servertools.get_server_from_url(scrapedurl)
        if scrapedtitle != "directo":
            itemlist.append( Item(channel=__channel__, action="play", title="["+scrapedtitle+"]", fulltitle=item.title, url=scrapedurl, thumbnail=item.thumbnail, folder=False) )

    return itemlist

def play(item):
    logger.info("pelisalacarta.estrenosdecineonline play item.url="+item.url)

    itemlist=[]

    videoitemlist = servertools.find_video_items(data=item.url)

    i=1
    for videoitem in videoitemlist:
        if not "favicon" in videoitem.url:
            videoitem.title = "Mirror %d%s" % (i,videoitem.title)
            videoitem.fulltitle = item.fulltitle
            videoitem.channel=channel=__channel__
            videoitem.show = item.fulltitle
            itemlist.append(videoitem)
            i=i+1

    return itemlist
Bájate el conetor de mail.ru para que puedas ver los enlaces mailru
viewtopic.php?f=14&t=6236