Script interactivo para buscar productos tasados en Todoconsolas (https://www.todoconsolas.com/es/vende). Devuelve los precios de compra.
Requisitos: python >=3.6, requests
Script interactivo para buscar productos tasados en Todoconsolas (https://www.todoconsolas.com/es/vende). Devuelve los precios de compra.
Requisitos: python >=3.6, requests
| 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() |