ARGENTOP2P

Soporte, Ayuda y Consultas => Programación en General => Mensaje publicado por: Solanet en Noviembre 01, 2010, 15:31:47

Título: Crawlear pagina Vimeo.com
Publicado por: Solanet en Noviembre 01, 2010, 15:31:47
Buenas. como andan?
tengo un gran problema y quería ver si me podían dar una mano.

Tengo que crawlear la pagina de vídeos vimeo. Primero se deberá descargar la pagina inicial y buscar paginas internas mediante el tag  <a href=' ' >. Este proceso se repetirá con las paginas internas (la dirección tiene que tener el mismo nombre del dominio. Ej: si en vimeo aparece un link a Google.com este deberá ser ignorado) hasta haber obtenido todo el sitio.

La información a devolver serán vídeos contenidos en las paginas. Los mismos pueden estar embebidos mediante el tag HTML 5 <video> o en los tags <object> y<embed>


El spider o crawler tiene que ser en python o php. Pero si no queda otra solucion y lo encuentran en otro lenguaje me fijo si sirve.

---------------------------------------

Auxilio.   :-[

Muchas gracias
Título: Re: Crawlear pagina Vimeo.com
Publicado por: frhfpwimb en Noviembre 01, 2010, 21:36:06
jajajaja lindo laburito...lo unico que encontre es esto: http://php-crawler.sourceforge.net/ (http://php-crawler.sourceforge.net/)
Y con licencia BSD :D (mejor que GPL  :up: )
Título: Re: Crawlear pagina Vimeo.com
Publicado por: Solanet en Noviembre 01, 2010, 22:19:10
Lindooo laburito  :jaja: Gracias por el link ! voy a chusmear que tal.


Ya tengo el codigo listo (lo hice en python)
Pero solo me está capturando los links a los videos de vimeo y guardandolos en un txt, y quiiero tambien que de cada video guarda el rate,descripcion,autor y titulo ....¿como puedo hacer?
Gracias ! lo necesito para mañana y me re colgue

import re
import urllib.request
import datetime

class Links():
    def __init__(self,url):
        self.__direccion=url

    def setter(self,url):
        self.__direccion=url

    def adhtml(self):
        user_agent = 'Mozilla/4.0 (compatible; MSIE 5.5; Windows NT)'
        values = {}
        headers = {'User-Agent':user_agent}
        data = urllib.parse.urlencode(values)
        req = urllib.request.Request(url, data, headers)
        f= urllib.request.urlopen(req)
        a=f.read()
        f.close()
        return a


    def buscaVideo(self, html):
        try:
            Exprecion = re.compile('<a\s*href=[\'|"](.*?)[\'|"]')
            finalVideo=[]
            ec = Exprecion.findall(str(html))
            for i in range(0,len(ec)):
                if (re.match("[0-9]*",ec[i])):
                    finalVideo.append(ec[i])

        except:
            print("ocurrio un error")
        return (finalVideo)


    def buscaDescripcion(self, html):
        Exprecion = re.compile('<div id="description">(.*?)<br><br>(.*?)<br><br>(.*?)<b r><br>(.*?)<br><br>(.*?)<br><br>(.*?) </div>')
        ec = Exprecion.findall(str(html))
        return (ec)

    def buscaRate(self,html):
        Exprecion = re.compile('<td>(.*?)</td>')
        ec = Exprecion.findall(str(html))
        return (ec)

    def buscaTitulo(self,html):
        Exprecion = re.compile('<div class="title">(.*?)</div>')
        ec = Exprecion.findall(str(html))
        return (ec)
   
    def buscaCategoria(self,html):
        Exprecion = re.compile('<p id="eow-category"><a href="/.*">(.*?)</a></p>')
        ec = Exprecion.findall(str(html))
        return (ec)

url='vimeo.com/ajax/user/home_videos?&jdata={"page":1}'
link=Links(url)
fecha=datetime.date.today()
dia=(str(fecha))
print(fecha)
loco=open("videosVimeo.txt","w")


loco.write("<?xml>\n")
loco.write('<list origin="vimeo" date="'+ dia +'">\n')
for k in range(1,35):
    url='http://vimeo.com/ajax/user/home_videos?&jdata={"page":'+str(k)+'}'
    print(url)
    print (url.__repr__())
    link.setter(url)
    html=link.adhtml()
    arrayVideo=link.buscaVideo(html)
    s=set(arrayVideo)
    for h in s:
        link.setter("http://www.vimeo.com"+h)
        html=link.adhtml()
        a=link.buscaDescripcion(html)
        rate=link.buscaRate(html)
        titulo=link.buscaTitulo(html)
        loco.write('\t<item>\n')
        if titulo:
            loco.write('\t\t <title>'+ titulo[0] + '</title>\n')
        loco.write('\t\t<refer>http://www.vimeo.com"'+h+'"</refer>\n')
        if len(titulo) > 2:
            loco.write('\t\t<rate>'+ rate[1] +'</rate>\n')
        if len(titulo) > 3:
            loco.write('\t\t<description>' +a[2]+ '</description>\n')
        #loco.write('\t\t<category>'+categoria[0]+'</category>\n')
        loco.write('\t</item>\n')

loco.close()

print("Aca salen los videos")
for j in range(1,len(arrayVideo)):
    print(arrayVideo[j])