Despues de ver este capitulo de mejorando.la , senti curiosidad por Scrapy , un framework para scraping y crawling , algo asi como "raspar y arrastrarse" en sitios web y obtener informacion incluidas en las paginas que componen el sitio.
Hace poco tiempo, necesite este framework, porque me encontraba buscando presentaciones sobre Oracle Weblogic 11g y el sitio, que tenia una presentacion bueno, no me permitia bajarla. Asi que se me prendio la lamparita y comence a buscar , en el codigo HTML informacion que me sirviera para obtener las SLIDES.
Requerimientos:
-Scrapy
-Python
-Distrubucion de linux que te guste. (Use Linux Mint)
Para Arrancar el codigo se usa:
scrapy crawl slideshareWeb (Enter)
Estando en el directorio de la applicacion que contruyeron; pero mas claro este en el Tutorial que adjunte como link externo.
import urllib2
import tarfile
import os
from os.path import basename
from urlparse import urlsplit
from scrapy.spider import BaseSpider
from scrapy.selector import HtmlXPathSelector
from slideshareWeb.items import SlidesharewebItem
class slideshareWebSpider(BaseSpider):
name = "slideshareWeb"
allowed_domains = ["slideshare.net"]
start_urls = [
"http://es.slideshare.net/JustinKestelyn/oracle-weblogic-server-12c-developer-overview"
]
def messages(self, msg_text):
print "--------------------------------------------------------------------------------------"
print msg_text
print "--------------------------------------------------------------------------------------"
def delete_file(self, file_name):
os.remove(file_name)
def make_tar(self, tar_filename, files_compress):
self.messages( "Building Tar File..."+ tar_filename)
tar = tarfile.open(tar_filename, "w:gz")
for name in files_compress:
tar.add(name)
#Delete image file
self.delete_file(name)
tar.close()
return
def parse(self, response):
hxs = HtmlXPathSelector(response)
title = hxs.select('//title/text()').extract()
self.messages("Extracting slides from : " + title[0])
link_slides = hxs.select('//link[contains(@media, "handheld")]/@href').extract()
fileTar = basename(urlsplit(link_slides[0])[2])+'.tar'
stats = hxs.select('//img[@class="slide_image"]')
count = 0
items = []
files_comp = []
for stat in stats:
l_normal = stat.select('@data-normal').extract()
l_full = stat.select('@data-full').extract()
item = SlidesharewebItem()
item['number'] = count
item['link_normal'] = l_normal[0]
item['link_full'] = l_full[0]
items.append(item)
count +=1
try:
imgData = urllib2.urlopen(l_full[0]).read()
fileName = basename(urlsplit(l_full[0])[2])
print "Downloading : ", fileName
output = open(fileName,'wb')
output.write(imgData)
output.close()
files_comp.append(fileName)
except:
pass
if count>0:
try:
self.delete_file(fileTar)
except:
pass
self.make_tar(fileTar, files_comp)
else:
self.messages("NO Slides in " + title[0] + " maybe SWFObject :-( ")
return items
Hoy me llego el envio de Sparkfun con mi Pan/Tilt Bracket y unos Servos. Con ellos me decidi a realizar algunas pruebas que mostrare a continuacion. Elementos a utilizar: DuinoBot v1.2 ( RobotGroup ARG) Pan/Tilt Bracket (Paneos) Servos Protoboards Jumpers Potenciometro Tambien codifique con la IDE de Arduino para que estos elementos "se fusionaran" en mi TEST. ;-) Codigo Parcial void setup(){ servoTilt.attach(2); //The Tilt servo is attached to pin 2. //servoPan.attach(3); //The Pan servo is attached to pin 3. servoTilt.write(10); //Initially put the servos both //servoPan.write(40); //at 90 degress. Serial.begin(57600); //Set up a serial connection for 57600 bps. } void loop(){ val = analogRead(potpin); // reads the value of the potentiometer (value between 0 and 1023) val = map(val, 0, 1023, 0, 179); // scale it to use it with the servo (value between 0 and 180) servoTilt.write(val);
"Cicciolina e Moana ai mondiali" es una parodia porno cuya historia se centra en el mundial de fútbol Italia 90. Ya desde los créditos, con un muñeco símil a la mascota de dicho torneo pero visiblemente excitado, nos percatamos de que el director Jim Reynolds no se planteó en ningún momento de los 82 minutos de metraje hacer una porno tradicional, sino entretener mientras se muestra (todo). El guión podría resumirse de la siguiente manera: los organizadores del mundial saben que la selección italiana no es lo suficientemente buena como para obtener el título por si sola, por lo cual deciden contratar a la Cicciolina y Moana Pozzi para que ellas se encarguen de desgastar (mediante el sexo) a los rivales, y así allanarle el camino a la "azurra". Tan simple como eso. Tras esto, Cicciolina y Moana se van "haciendo cargo" de las estrellas de cada uno de los rivales que debe enfrentar Italia. Así "se pasan" con éxito entre otros (de a una o en pareja
Comentarios