Español
EninSoft – recursos para programadores web
EninSoft - recursos para programadores web > Eninsoft > web > Cómo comprar una Play Station 5 (PS5) en MediaMarkt

Cómo comprar una Play Station 5 (PS5) en MediaMarkt

  • enero 22, 2021
  • Categoría: web
No hay comentarios

Importante: Esta información es para uso lúdico personal. En ningún caso se pretende dar conocimientos, consejos, formaciones, herramientas, ni soluciones técnicas de ámbito comercial ni profesional. Simplemente es información que se ha redactado en finalidad de recordatorio de ciertos proyectos realizados. Si usted no está seguro de la fiabilidad de la información, no cumple con sus expectativas o no es de su agrado, le ruego que abandone este sitio web. Para ver todas las exclusiones garantía y de responsabilidad acceda a la sección Aviso Legal.

Cómo ya sabéis, cuando llega una nueva partida de consolas se abren las ventas apenas 15 minutos en los principales distribuidores. Estar pendientes de su web con (F5) es una perdida de tiempo.

Aquí os dejo mi script que mediante web scraping te envía un correo cuando la consola está disponible.

En la última imagen puedes ver las alertas que he recibido hoy 22 de enero de 2021 cuando Mediamarket cuando ha abierto ventas de las 12:45 a las 13:00.

Requerimientos:
Servidor Linux + PHP con un MTA de envío de correos (en mi caso he usado Postfix enlazado con una cuenta de Gmail).

Crear una carpeta para el proyecto.

mkdir /var/www/ps5

Script para la PS5 con BlueRay (/var/www/ps5/mediamarkt_blueray.php)

<?php
/*
 * This script check if PS5 is available on Mediamarkt.
 */

// Only uid is allowed
if ((!isset($_SERVER["USER"]) || $_SERVER["USER"] != "root") && (!isset($_SERVER['LOGNAME']) || $_SERVER['LOGNAME'] != "root")) die();

header ('Content-type: text/html; charset=utf-8'); 
session_start();

ini_set('max_execution_time',0);
set_time_limit(0);

// CONFIGURATION

// Name 
$script = 'ZXmarkt_blueray';

// Path
$path = '/var/www/ps5/';

// Url of product
$url = 'https://www.mediamarkt.es/es/product/_consola-sony-ps5-825-gb-4k-hdr-blanco-1487016.html'; 
//$url = 'https://www.mediamarkt.es/es/product/_mando-nintendo-switch-joy-con-dos-mandos-verde-y-rosa-1371291.html'; // Test

// Interval to check (Seconds)
$interval = 30;

// Mode
$loop = false;

// Target word
$target = 'pdp-add-to-cart';

// User agent
$agent = '--header="Accept: text/html" --user-agent="Mozilla/5.0 (Macintosh; Intel Mac OS X 10_11_2) AppleWebKit/601.3.9 (KHTML, like Gecko) Version/9.0.2 Safari/601.3.9"';

// Mail
$mail_to = 'youremail@eninsoft.com';
$mail_subject = 'PS5 disponible en '.$script;
$mail_body = '<p>Hola,</p><p>Hay PlayStation 5 disponibles para la venta en la web del proveedor: <b>'.$script.'</b>.</p><p>Atentamente.</p>';
$mail_header = 'MIME-Version: 1.0' . "\r\n";
$mail_header .= 'Content-type: text/html; charset=utf-8' . "\r\n";
$mail_header .= 'From: Eninsoft';

// MAIN

// If process already exits, ignore it.
exec("ps aux | grep -i '".$script."' | grep -v grep", $pids);
if (!empty($pids)) exit;

// Set name to script
cli_set_process_title($script);  

$control = true;
while($control){
    if (!$loop) $control = false;

    // Download page
    exec('cd '.$path.' && wget -O '.$script.'.html "'.$url.'" '.$agent.' -a wget'.date('Ymd').'.log > /dev/null');

    // Get page
    $html = file_get_contents($path.$script.'.html');

    if (strpos($html,$target) !== false){
        
        // Available for sale.
        echo 'Check: Available for sale!!'."\r\n";
        mail($mail_to, $mail_subject, $mail_body, $mail_header);

    }else{

        // Not available for sale.
        echo 'Check: Not available'."\r\n";
    }
    
    if ($loop){
        usleep($interval * 1000000);
    }
}

echo "** Script end: ".date('Y:m:d H:i:s')."\r\n";
?>

Script para la PS5 digital (/var/www/ps5/mediamarkt_digital.php)

<?php
/*
 * This script check if PS5 is available on Mediamarkt.
 */

// Only uid is allowed
if ((!isset($_SERVER["USER"]) || $_SERVER["USER"] != "root") && (!isset($_SERVER['LOGNAME']) || $_SERVER['LOGNAME'] != "root")) die();

header ('Content-type: text/html; charset=utf-8'); 
session_start();

ini_set('max_execution_time',0);
set_time_limit(0);

// CONFIGURATION

// Name 
$script = 'ZXmarkt_digital';

// Path
$path = '/var/www/ps5/';

// Url of product
$url = 'https://www.mediamarkt.es/es/product/_consola-sony-ps5-digital-edition-825-gb-4k-hdr-blanco-1487015.html'; 
//$url = 'https://www.mediamarkt.es/es/product/_mando-nintendo-switch-joy-con-dos-mandos-verde-y-rosa-1371291.html'; // Test

// Interval to check (Seconds)
$interval = 30;

// Mode
$loop = false;

// Target word
$target = 'pdp-add-to-cart';

// User agent
$agent = '--header="Accept: text/html" --user-agent="Mozilla/5.0 (Macintosh; Intel Mac OS X 10_11_2) AppleWebKit/601.3.9 (KHTML, like Gecko) Version/9.0.2 Safari/601.3.9"';

// Mail
$mail_to = 'youremail@eninsoft.com';
$mail_subject = 'PS5 disponible en '.$script;
$mail_body = '<p>Hola,</p><p>Hay PlayStation 5 disponibles para la venta en la web del proveedor: <b>'.$script.'</b>.</p><p>Atentamente.</p>';
$mail_header = 'MIME-Version: 1.0' . "\r\n";
$mail_header .= 'Content-type: text/html; charset=utf-8' . "\r\n";
$mail_header .= 'From: Eninsoft';

// MAIN

// If process already exits, ignore it.
exec("ps aux | grep -i '".$script."' | grep -v grep", $pids);
if (!empty($pids)) exit;

// Set name to script
cli_set_process_title($script);  

$control = true;
while($control){
    if (!$loop) $control = false;

    // Download page
    exec('cd '.$path.' && wget -O '.$script.'.html "'.$url.'" '.$agent.' -a wget'.date('Ymd').'.log > /dev/null');

    // Get page
    $html = file_get_contents($path.$script.'.html');

    if (strpos($html,$target) !== false){
        
        // Available for sale.
        echo 'Check: Available for sale!!'."\r\n";
        mail($mail_to, $mail_subject, $mail_body, $mail_header);

    }else{

        // Not available for sale.
        echo 'Check: Not available'."\r\n";
    }
    
    if ($loop){
        usleep($interval * 1000000);
    }
}

echo "** Script end: ".date('Y:m:d H:i:s')."\r\n";
?>

Crear un crontab para que se ejecute cada minuto.

*/1 * * * * php /var/www/ps5/mediamarkt_digital.php > /var/log/ZXmarket_digital.log
*/1 * * * * php /var/www/ps5/mediamarkt_blueray.php > /var/log/ZXmarket_blueray.log

Resultado.

NOTACIONES:
* La URL del producto es para MediaMark España.
* Si no se dispone de crontab, activa el modo «loop» del script.
* Ten precaución que no lleguen los correos en la bandeja de SPAM.
* Si se publica en otras webs, por favor, citar la fuente.

Saludos.

blue ray comprar digital markt media mediamarkt play ps5 station

Buscar

Publicaciones recientes

  • Cómo comprar una Play Station 5 (PS5) en MediaMarkt
  • Crear un USB Parrot OS con persistencia desde Linux.
  • Configurar PHP-FPM con varios usuarios/grupos para servidores multihosting. PHP-FPM 7.3 – Debian 10 Buster.
  • Cambio de Apache Handler (ModPHP) a PHP FPM 7.3 en Debian Buster.
  • Eliminar los indices numéricos en Mysql PDO fetch registros.

Categorías

  • benchmark
  • bug
  • clúster
  • correo
  • css
  • desarrollo
  • documentación
  • framework
  • hardware
  • HE
  • imagen
  • java
  • jquery
  • linux
  • mac (osx)
  • minar
  • monedas virtuales
  • mysql
  • pci dss
  • php
  • python
  • redes
  • SAP
  • seguridad
  • Sin categorizar
  • sodimm
  • utilidades
  • virtualización
  • WAF
  • web
  • windows
  • wordpress
Copyright © 2018 EninSoft.com. Todos los derechos reservados
  • Aviso legal
  • Política de privacidad
  • Política de cookies
Buscar

Utilizamos cookies para darte la mejor experiencia en nuestra web.

Puedes saber más sobre qué cookies usamos o desactivarlas en los ajustes.

Política de privacidad
EninSoft - recursos para programadores web

Esta web utiliza cookies para proporcionarte la mejor experiencia de navegación posible. Estas cookies son guardadas en tu navegador y cumplen funciones como reconocerte cuando regresas a esta web y ayudarnos a saber qué secciones de la web encuentras más interesantes y útiles.

Cookies estrictamente necesarias

Las cookies estrictamente necesarias son aquellas fundamentales para el correcto uso de la web. No guardamos ninguna información sensible en ellas.

Si deshabilitas esta cookie, no podremos guardar tus preferencias. Esto implicará que cada vez que visites nuestra web tendrás que habilitar o deshabilitar las cookies de nuevo.

Cookies de analítica

Esta web usa Google Analytics para recoger información como el número de visitantes o las páginas más populares.

Por favor, activa primero las cookies estrictamente necesarias para que podamos guardar tus preferencias

By  GDPR Cookie Compliance