- Se incorporó
- 16 Noviembre 2021
- Mensajes
- 436
En yapo siempre hay trabajos wenos, rápidos y no tan rápidos. Sin embargo, algo fundamental es llegar rápido con los publicantes. Para eso quería compartir un tenten pié para utilizar la nueva y flamante API que pusieron hace un tiempo. Antes había que darse la paja de hacer scraping. Ahora 25 líneas bien derrochadas desde un copy paste del inspector de código de chrome, y algo de bash, hacen toda la pega. Fácil, rápido y bonito.
Yo se que le van a dar buen uso...
Ésta fué la parte mas difícil. El JSON resultante ya saben como trabajarlo. Nada que un buen cronjob no nos pueda indicar cada x tiempo con una alarma en nuestro OS favorito.
Ya que hay interés, vamos a agregar las instrucciones de instalación para las herramientas necesarias (por ahora).
Linux Debian (Ubuntu, mate, ...)
cURL
snap
httpie
awk y egrep ya deberían venir con el sistema, para verificarlo usamos el siguiente comando.
Deberíamos obtener las rutas de los ejecutables.
Ejecución
Con el copy paste del script, vamos a crear un archivo "archivo.sh" y vamos a pegar el contenido dentro de dicho archivo.
Luego en nuestro terminal tenemos que ubicar dicho archivo y darle permisos de ejecución.
Para correr el programa, sencillamente lo ejecutamos de la siguiente forma.
Resultado
Un archivo data.json aparecerá en el mismo directorio en donde tengamos el programa. El cual tiene la siguiente estructura base.
Quizá cuando tenga mas tiempo, pueda ir desgranando el funcionamiento.
Yo se que le van a dar buen uso...
Ésta fué la parte mas difícil. El JSON resultante ya saben como trabajarlo. Nada que un buen cronjob no nos pueda indicar cada x tiempo con una alarma en nuestro OS favorito.
Bash:#!/bin/bash # CLI PARAMETERS # P1: PAGE # P2: LIMIT x_txtref=$(http -b GET https://new.yapo.cl/main.5fc9887f6d5b25d4.js | egrep -E -o "key:\".{36}\"" | awk '{gsub("\"", "", $0); gsub("key:", "", $0); print $0}') curl "https://public-api.yapo.cl/buyers/search?page=${1}&limit=${2}&query=%7B%22category%22:%5B7020%5D%7D" \ -H 'authority: public-api.yapo.cl' \ -H 'accept: application/json, text/plain, */*' \ -H 'accept-language: es-CL,es;q=0.9,en-US;q=0.8,en;q=0.7' \ -H 'origin: https://new.yapo.cl' \ -H 'referer: https://new.yapo.cl/' \ -H 'sec-fetch-dest: empty' \ -H 'sec-fetch-mode: cors' \ -H 'sec-fetch-site: same-site' \ -H 'user-agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:100.0) Gecko/20100101 Firefox/100.0' \ -H 'x-chref: WEB' \ -H 'x-cmref: client' \ -H 'x-commerce: Yapo' \ -H 'x-country: CL' \ -H 'x-domain: Buyer' \ -H 'x-rhsref: new.yapo.cl' \ -H "x-txref: ${x_txtref}" \ --compressed > data.json
Ya que hay interés, vamos a agregar las instrucciones de instalación para las herramientas necesarias (por ahora).
Linux Debian (Ubuntu, mate, ...)
cURL
Bash:
sudo apt-get install -y curl
snap
Bash:
sudo apt install snapd
httpie
Bash:
snap install httpie
awk y egrep ya deberían venir con el sistema, para verificarlo usamos el siguiente comando.
Bash:
which awk
Bash:
which egrep
Deberíamos obtener las rutas de los ejecutables.
Ejecución
Con el copy paste del script, vamos a crear un archivo "archivo.sh" y vamos a pegar el contenido dentro de dicho archivo.
Luego en nuestro terminal tenemos que ubicar dicho archivo y darle permisos de ejecución.
Bash:
chmod + archivo.sh
Para correr el programa, sencillamente lo ejecutamos de la siguiente forma.
Bash:
./archivo.sh
Resultado
Un archivo data.json aparecerá en el mismo directorio en donde tengamos el programa. El cual tiene la siguiente estructura base.
Quizá cuando tenga mas tiempo, pueda ir desgranando el funcionamiento.
Última modificación: