Spaces:
Sleeping
Sleeping
Update app.py
Browse files
app.py
CHANGED
@@ -37,14 +37,17 @@ async def scrapear_pinterest_async(categoria: str, cantidad: int = 50):
|
|
37 |
cookie['sameSite'] = 'Lax'
|
38 |
|
39 |
await context.add_cookies(cookies)
|
40 |
-
|
41 |
page = await context.new_page()
|
42 |
|
43 |
search_url = f"https://mx.pinterest.com/search/pins/?q={categoria.replace(' ', '%20')}"
|
44 |
await page.goto(search_url, timeout=60000)
|
45 |
await asyncio.sleep(3)
|
46 |
|
47 |
-
|
|
|
|
|
|
|
|
|
48 |
await page.mouse.wheel(0, 5000)
|
49 |
await asyncio.sleep(2)
|
50 |
|
@@ -58,17 +61,27 @@ async def scrapear_pinterest_async(categoria: str, cantidad: int = 50):
|
|
58 |
if candidates:
|
59 |
url_grande = candidates[-1]
|
60 |
if "736x" in url_grande or "originals" in url_grande:
|
61 |
-
urls
|
62 |
-
|
63 |
-
|
64 |
if len(urls) >= cantidad:
|
65 |
break
|
66 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
67 |
await browser.close()
|
68 |
return list(urls)
|
69 |
|
70 |
def scrapear_pinterest(categoria: str, cantidad: int):
|
71 |
urls = asyncio.run(scrapear_pinterest_async(categoria, cantidad))
|
|
|
|
|
72 |
resultados = [{"img_url": url} for url in urls]
|
73 |
return json.dumps(resultados, indent=2, ensure_ascii=False)
|
74 |
|
|
|
37 |
cookie['sameSite'] = 'Lax'
|
38 |
|
39 |
await context.add_cookies(cookies)
|
|
|
40 |
page = await context.new_page()
|
41 |
|
42 |
search_url = f"https://mx.pinterest.com/search/pins/?q={categoria.replace(' ', '%20')}"
|
43 |
await page.goto(search_url, timeout=60000)
|
44 |
await asyncio.sleep(3)
|
45 |
|
46 |
+
max_intentos_sin_cambios = 3
|
47 |
+
intentos_sin_cambios = 0
|
48 |
+
cantidad_anterior = 0
|
49 |
+
|
50 |
+
while len(urls) < cantidad and intentos_sin_cambios < max_intentos_sin_cambios:
|
51 |
await page.mouse.wheel(0, 5000)
|
52 |
await asyncio.sleep(2)
|
53 |
|
|
|
61 |
if candidates:
|
62 |
url_grande = candidates[-1]
|
63 |
if "736x" in url_grande or "originals" in url_grande:
|
64 |
+
if url_grande not in urls:
|
65 |
+
urls.add(url_grande)
|
66 |
+
print(f"Imágenes encontradas: {len(urls)}")
|
67 |
if len(urls) >= cantidad:
|
68 |
break
|
69 |
|
70 |
+
# Verificar si se encontraron nuevas imágenes
|
71 |
+
if len(urls) == cantidad_anterior:
|
72 |
+
intentos_sin_cambios += 1
|
73 |
+
print(f"No se encontraron nuevas imágenes. Intento {intentos_sin_cambios}/{max_intentos_sin_cambios}")
|
74 |
+
else:
|
75 |
+
intentos_sin_cambios = 0
|
76 |
+
cantidad_anterior = len(urls)
|
77 |
+
|
78 |
await browser.close()
|
79 |
return list(urls)
|
80 |
|
81 |
def scrapear_pinterest(categoria: str, cantidad: int):
|
82 |
urls = asyncio.run(scrapear_pinterest_async(categoria, cantidad))
|
83 |
+
if len(urls) < cantidad:
|
84 |
+
print(f"⚠️ Solo se encontraron {len(urls)} imágenes de las {cantidad} solicitadas.")
|
85 |
resultados = [{"img_url": url} for url in urls]
|
86 |
return json.dumps(resultados, indent=2, ensure_ascii=False)
|
87 |
|