Skip to content

Instantly share code, notes, and snippets.

@David-Lor
Created April 17, 2021 13:24
Show Gist options
  • Save David-Lor/3a8b0f51204739a6289026973ae2fe65 to your computer and use it in GitHub Desktop.
Save David-Lor/3a8b0f51204739a6289026973ae2fe65 to your computer and use it in GitHub Desktop.
Todoconsolas script tasaciones
from typing import Dict
import requests
ProductosTasados = Dict[str, str] # { nombre : precio }
def tasar(busqueda: str) -> ProductosTasados:
headers = {
"Host": "www.todoconsolas.com",
"User-Agent": "Mozilla/5.0 (X11; Ubuntu; Linux x86_64; rv:87.0) Gecko/20100101 Firefox/87.0",
"Accept": "application/json, text/javascript, */*; q=0.01",
"Accept-Language": "es,en-US;q=0.7,en;q=0.3",
"Accept-Encoding": "gzip, deflate, br",
"Referer": "https://www.todoconsolas.com/es/vende",
"Content-Type": "application/x-www-form-urlencoded; charset=UTF-8",
"X-Requested-With": "XMLHttpRequest",
"Origin": "https://www.todoconsolas.com",
"DNT": "1",
"Connection": "keep-alive"
}
payload = {
"s": "+".join(busqueda.split(" ")),
"ready_to_buy": 1,
"resultsPerPage": 10
}
r = requests.post("https://www.todoconsolas.com/es/busqueda", headers=headers, data=payload)
r.raise_for_status()
r = r.json()
products_raw = r.get("products", [])
products_parsed = dict()
for product in products_raw:
nombre = product["name"]
precio = product["buy_price"]
products_parsed[nombre] = precio
return products_parsed
def print_productos(productos: ProductosTasados):
if not productos:
print("No se encontraron productos!")
return
print(f"{len(productos)} productos encontrados:")
for nombre, precio in productos.items():
print(f"\t{nombre} - {precio}")
def main():
while True:
try:
buscar = input("Producto a buscar (q=salir): ").strip()
if buscar.lower() == "q":
raise KeyboardInterrupt
productos = tasar(buscar)
print_productos(productos)
except KeyboardInterrupt:
break
print("Bye!")
if __name__ == "__main__":
main()
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment