Emilianohack6950 commited on
Commit
e5fc626
·
verified ·
1 Parent(s): 8c40221

Update app.py

Browse files
Files changed (1) hide show
  1. app.py +18 -5
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
- while len(urls) < cantidad:
 
 
 
 
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.add(url_grande)
62
- print(f"Imágenes encontradas: {len(urls)}")
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