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 '…' por "..."
data = re.sub(r"…","...",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