1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 |
[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
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 |
<!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> |