Descarga revistas yumpu.com

Como el titulo lo dice, generé un pequeño programa que realiza descargas de las revisar publicadas en yumpu.com.

Necesitaba/n un archivo que había sido subido a este portal, el brillo es que se encuentra en un ember por lo que no se puede bajar o incluso siquiera revise si se podía. De igual manera, este es el código del programa por si alguien lo quiere mejorar o bajar imágenes desde otros lados y weas.

Lo que hace el programa es bajar las imágenes de cada revisar que se encuentran en una ruta especifica. Para esto se debe entregar al programa el numero de la revista que se muestra en la imagenes N° 1. También se puede ver un JSON el cual nos presenta los tamaños de las imágenes y la cantidad de archivos. Una vez descargadas las imágenes, procedemos a transformar todo en un PDF y borrar las imágenes.

El programa se realizo en C# con SharpDevelop en modo consola, las librerias itextSharp y NewtonSoft Json. De no ser libres estas librerías, besitos para que me perdonen de no ser así, besitos igual.

No esta de mas, decir que no me hago responsable por los que descargan las revisas, no es problema mio que su pagina no guarde bien la información. Próximamente quiero realizar lo mismo pero con unas imágenes de las SucideGirls de una pagina que encontré por ahí :B



/*
 * Created by SharpDevelop.
 * User: dmartinez
 * Date: 19-10-2016
 * Time: 13:19
 * 
 * Se usan dos librerias, itextSharp y Newtonsoft Json. Las que baje, al parecer eran de codigo libre de no se así, me importa re poco.
 * Si no entienden el código, vuelve a estudiar. Se descargan imagenes desde la pagina yumpu.com no se si cobran o no, no se si tienen
 * bloqueadas sus imagenes(al parecer no lo hicieron muy bien) pero, yo no soy el que las baja lo hace el que usa este simple programa, besitos.
 *
 */
using System;
using System.Net;
using System.IO;
using Newtonsoft.Json.Linq;
using System.Linq;
using iTextSharp.text;
using iTextSharp.text.pdf;

namespace yumpuDownload
{
 class Program
 {
  public static void Main(string[] args)
  {
   string inputCodigo;
   int Cantidad;
   int calculo;
   Console.WriteLine("quieres bajar revistas pillin!!!");
   Console.WriteLine("Ingresa el codigo de la revista");
   inputCodigo = Console.ReadLine();
   Console.WriteLine();
   
   string appPath = System.IO.Directory.GetCurrentDirectory() + "/" + "Imagenes";
   
   Directory.CreateDirectory(appPath);
   try{
    
    using (WebClient client = new WebClient()) 
      {
     var data = client.DownloadString("https://www.yumpu.com/en/document/json/" + inputCodigo);
        JObject o = JObject.Parse(data);
        Cantidad = o["document"]["pages"].Count();
        
     try {
             
      for (int i = 1; i <= Cantidad; i++) {
          client.DownloadFile(new Uri("https://img.yumpu.com/" + inputCodigo + "/" + i + "/1238x1600"), appPath + "/" + i + ".jpg");
          calculo = ((i*100)/Cantidad);
          Console.SetCursorPosition(0, Console.CursorTop -1);
       ClearCurrentConsoleLine();
       Console.WriteLine("Descargando la revista: ===" + calculo + "%===");
            }
      
     } catch (WebException wex) {
      if (((HttpWebResponse) wex.Response).StatusCode == HttpStatusCode.NotFound)
         {
       Console.WriteLine("SHIIIEEEETTT!!!!");
       Console.ReadLine();
         }
     }
       }
    
    /*para pasar las imagenes a pdf*/
    
    Document doc = new Document();
    try
    {
      PdfWriter.GetInstance(doc, new FileStream(appPath + "/" + inputCodigo + ".pdf", FileMode.Create));
      doc.Open();
      
      for (int i = 1; i <= Cantidad ; i++) {
       Image jpg = Image.GetInstance(appPath + "/" + i + ".jpg");
       jpg.ScaleAbsolute(570, 750);
       doc.Add(jpg); 
      }
    }
    catch (Exception ex)
    {
     Console.WriteLine(ex);
     Console.ReadLine();
    }
    finally
    {
      doc.Close();
    }
    /*=============================*/
    
    /*========elimina los datos ==================*/
    
    for (int i = 1; i <= Cantidad; i++) {
     if(File.Exists(appPath + "/" + i + ".jpg"))
     {
         File.Delete(appPath + "/" + i + ".jpg");
     }
    }
    /*============================================*/
    
    Console.Write("Ya generé el PDF en carpeta Imagenes. chaolin . . . ");
    Console.ReadKey(true);
  }
   catch{
    Console.WriteLine("El codigo de la revista no es valido, la pagina esta caida, no tienes acceso a internet o este programa no funciona. u.u");
    Console.ReadLine();
   }
  }
  
  public static void ClearCurrentConsoleLine()
  {
      int currentLineCursor = Console.CursorTop;
      Console.SetCursorPosition(0, Console.CursorTop);
      Console.Write(new string(' ', Console.WindowWidth)); 
      Console.SetCursorPosition(0, currentLineCursor);
  }
 }
}



Finalmente, el programa se ve de esta forma:




Para descargar el proyecto: aquí

Para descargar las librerías: aquí

Para descargar ejecutable: aquí


Saludos.


Comentarios

  1. Hola David,

    Hiciste el programa hace varios años, supongo que ya yumpu cambio algo pues no funciona en este momento. No se nada de programación pero seria posible modificarlo para que usuario entre el link del documento?

    En particular tengo dificultades con este documento, supongo que esta protegido. He intentado descargar las imágenes con varias herramientas como Jdownloader, http://yumpu.pdf-downloader.com y http://yumpu-download.tiny-tools.com nada funciona por el momento, espero que tu programa si pueda funcionar.

    Gracias.

    ResponderEliminar
  2. Respuestas
    1. Hola, un método sencillo ahora mismo no encuentro ya que me tendría que tomar mi tiempo pero, si lo necesitas rápidamente lo puedes ir descargando los el modo desarrollador de google chrome.

      Esto fue lo que encontré a la rápida:
      https://img.yumpu.com/59844459/1/1238x1600/innov-m1-t2.jpg?AWSAccessKeyId=AKIAICNEWSPSEKTJ5M3Q&Expires=1524153600&Signature=eJQJrCssUvJUMjDQSbQS2pFrOF8%253D&quality=80

      https://img.yumpu.com/59844459/2/1238x1600/innov-m1-t2.jpg?AWSAccessKeyId=AKIAICNEWSPSEKTJ5M3Q&Expires=1524153600&Signature=eW9gg7vnzF4oBhnSSmi%252Bwh52vJk%253D&quality=80

      https://img.yumpu.com/59844459/3/1238x1600/innov-m1-t2.jpg?AWSAccessKeyId=AKIAICNEWSPSEKTJ5M3Q&Expires=1524153600&Signature=j0aisS8QNzWlBdYLWWegx3X616I%253D&quality=80

      Eliminar

Publicar un comentario

Entradas populares de este blog

XML - Download File - VBA Excel

Funciones VBA Excel