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
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: )
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])