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
Mientras navegaba por la red encontré este sitio: www.issuu.com es un sitio donde las personas suben distintas publicaciones de toda índole. Y me puse a revisar algunas revistas que encontré ahí, con buen material, pero me resultaba torpe tener que bajar pagina por pagina o suscribirme para bajarlas. Así que empece a buscar una manera de bajar todas las paginas a la vez, leyendo este post y con algunos conocimientos de python (no son muchos ;-) me las arregle para hacer un script para bajar las publicaciones en formato JPG. (las paginas) y aquí subiré el código fuente. #!/usr/local/bin/python """Extract pages of ISSUU.COM in JPG images This few lines of python code are for U to get JPGs files with the pages of the books/magazines/something posted in issuu.COM Enjoy, Share or Destroy THIS CODE! ;-) """ __author__ = "Jose Rey (me@kirkjoserey.com)" __date__ = "$Date: 2011/02/19 $" __copyright__ = "Copyleft 2011 b...
Fue San Benito el que escribió el libro sobre las virtudes monásticas: obediencia, pobreza, castidad… Y fue esta última, la castidad, la que le hizo bastante infeliz. Parece que no podía sacarse de la cabeza a cierta chica de su pueblo. Y en una ocasión, cuando su deseo por ella era tan enorme, se saltó la tradicional ducha fría. En su lugar se quitó la ropa y se tiró desnudo a unas zarzas. Se revolcó en las esquinas hasta que su piel se desgarró y sangró. Eso es compromiso . – Chris Stevens desde la K.OSO ( Doctor en Alaska , 1990)
La eternidad es un periodo de tiempo muy grande. Especialmente hacia el final. – Stephen Hawking , físico y cosmólogo (Vía Rienzie ) N.R. : Esto confirma lo que decian los Heroes del Silencio:
Comentarios