[Net.ServicePointManager]::SecurityProtocol = [Net.SecurityProtocolType]::Tls12
$productosconurl = @{}
$web = Invoke-WebRequest "https://www.alcampo.es/compra-online/bebidas/zumos-de-frutas/naranja/c/W110201?q=%3Arelevance&show=All"
foreach($link in ($web.links.href | Group-Object).name){
if ($link -match "compra-online/bebidas/zumos-de-frutas/naranja" -and $link -notmatch "/c/")
{
$urlsanalizar = "https://www.alcampo.es$link"
$urlsanalizar
$web = Invoke-WebRequest $urlsanalizar
# Datos nutricionales del producto
$productos = @{}
# Extraer los valores nutricionales del producto
($web.AllElements | Where Class -eq “productNutritionalInformation valoresNutricionalesTabla”).innerHtml | %{
($_ -replace "</SPAN> <SPAN ","</SPAN>|<SPAN " -replace "<.*?>" -replace " g" -replace " Kj" -replace " Kcal" -split "`n" | ? {$_.trim() -ne ""} | ? {$_.trim() -notmatch "nutricionales"}).trim()
} | %{$productos.add($_.split("|")[0],$_.split("|")[1])}
$pesos = ($web.AllElements | Where Class -eq “productNutritionalInformation valoresNutricionalesTabla tablaInformacionAdicional”).innerText | %{
($_ -replace "<.*?>" -split "`n" | ? {$_.trim() -ne ""}).trim() -replace "g"
}
$nombre = ($web.AllElements | Where Class -eq “productDesc”).innerText | %{
$_
}
# Añadir los valores nutricionales del producto a la estructura
0..$pesos.Count | % {if($_%2-eq 0 -and $_ -lt 19){$productos.add($pesos[$_],$pesos[$_+1])}}
# Calcular el valor nutricional en función de la cantidad del alimento consumido
$comidacantidad = 100
$productos.'Peso neto escurrido'
$productos.Add('Valor energético(Kcal) Neto',($productos.'Valor energético(Kcal)' / $productos.'Peso Neto')*$comidacantidad)
$productos.Add('Hidatos de carbono Neto',($productos.'Hidratos de carbono' / $productos.'Peso Neto')*$comidacantidad)
$productos.Add('Grasas Netas',($productos.Grasas / $productos.'Peso Neto')*$comidacantidad)
$productos.Add('Grasas saturadas Netas',($productos.'Grasas saturadas' / $productos.'Peso Neto')*$comidacantidad)
$productos.Add('Azúcares Netos',($productos.Azúcares / $productos.'Peso Neto')*$comidacantidad)
$productos.Add('Proteínas Netas',($productos.Proteínas / $productos.'Peso Neto')*$comidacantidad)
# Mostrar la estructura con los valores nutricionales
$productos.GetEnumerator() | sort -Property name
$productosconurl.Add($nombre,$productos.Azúcares)
}
}
$productosconurl.GetEnumerator() | Select-Object @{n='Producto';e={$_.Key}},@{n='Azúcar';e={[Double]($_.Value)}} | sort Azúcar -Descending | ConvertTo-Html | Out-File web.html
start web.html
Código web generado
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<title>HTML TABLE</title>
</head><body>
<table>
<colgroup><col/><col/></colgroup>
<tr><th>Producto</th><th>Azúcar</th></tr>
<tr><td>Néctar de naranja y zanahoria AUCHAN brick de 1 litro</td><td>11,2</td></tr>
<tr><td>Néctar de naranja DON SIMÓN botella de 1,5 litros</td><td>10,4</td></tr>
<tr><td>Néctar de naranja ZUMOSOL brick de 1 litro</td><td>10,4</td></tr>
<tr><td>Néctar de Naranja GRANINI 33 cc</td><td>10,3</td></tr>
<tr><td>Néctar de naranja GRANINI botella de 1 litro</td><td>10,1</td></tr>
<tr><td>Néctar de naranja GRANINI botella de 1,5 litros</td><td>10,1</td></tr>
<tr><td>Néctar de naranja AUCHAN brick de 2 litros</td><td>10,1</td></tr>
<tr><td>Brick zumo exprimido de naranja sin pulpa DON SIMÓN 2 litros</td><td>10</td></tr>
<tr><td>Zumo de soja y naranja DON SIMON SOY brick de 1 litro</td><td>10</td></tr>
<tr><td>Zumo exprimido de naranja DON SIMÓN brick de 1 litro</td><td>10</td></tr>
<tr><td>Zumo exprimido de naranja sin pulpa DON SIMÓN brick de 12,5 centilitros pack de 4 uds.</td><td>10</td></tr>
<tr><td>Brick zumo de naranja con pulpa (100% naranja exprimida) DON SIMÓN 2l</td><td>10</td></tr>
<tr><td>Brick zumo de naranja DON SIMÓN 1l</td><td>10</td></tr>
<tr><td>Brick zumo exprimido de naranja sin pulpa DON SIMÓN 1 litro</td><td>10</td></tr>
<tr><td>Zumo de naranja y soja de origen 100% vegetal VIVESOY de Pascual 1 l.</td><td>9,7</td></tr>
<tr><td>Brick zumo exprimido naranja AUCHAN 1 l</td><td>9,7</td></tr>
<tr><td>Néctar de naranja MINUTE MAID botella de 1 litro</td><td>9,7</td></tr>
<tr><td>Zumo de naranja exprimido con pulpa ZUMOSOL 1 litro</td><td>9,4</td></tr>
<tr><td>Zumo exprimido de naranja sin pulpa ZUMOSOL botella de 85 centilitros</td><td>9,4</td></tr>
<tr><td>Zumo exprimido de naranja con pulpa ZUMOSOL botella de 85 centilitros</td><td>9,4</td></tr>
<tr><td>Zumo de naranja exprimida sin pulpa, ZUMOSOL, brick de un litro.</td><td>9,4</td></tr>
<tr><td>Néctar de naranja y mango GRANINI botella de 1 litro</td><td>9,2</td></tr>
<tr><td>Brick zumo de naranja dulce GRANINI 1 l</td><td>9</td></tr>
<tr><td>Zumo ecológico de mango y naranja LAMBDA botella de 1 l.</td><td>8,9</td></tr>
<tr><td>Zumo de naranja fresca SONATURAL 250 Mililitros</td><td>8,7</td></tr>
<tr><td>Brick zumo de naranja AUCHAN 1 l</td><td>8,4</td></tr>
<tr><td>Zumo de Naranja JUVER Botella 1 l.</td><td>8,4</td></tr>
<tr><td>Néctar de naranja y zanahoria GRANINI botella de 1 litro</td><td>8,3</td></tr>
<tr><td>Zumo ecológico de naranja LAMBDA botella de 1 l.</td><td>7,1</td></tr>
<tr><td>Néctar con stevia de naranja MINUTE MAID botella de 1 litro</td><td>5,7</td></tr>
<tr><td>Néctar de naranja JUVER 2 l.</td><td>5,6</td></tr>
</table>
</body></html>
![]()
The post Mostrar una tabla HTML con el valor nutricional (azúcares) de todos los fabricantes de productos encontrados en la tienda online de un supermercado en PowerShell appeared first on Scripting and security.